为什么有些软件包会从软件源中消失?

我需要安装一个依赖于libg2c0库的程序(GSAS & EXPGUI)。这个库在Ubuntu Jaunty(9.04)之前的版本中存在,然后被移除了。
解决方法是下载Jaunty package,然后运行sudo dpkg --force-depends -i libg2c0_3.4.6-8ubuntu2_amd64.deb。我发现这个解决方法不符合Ubuntu的精神(有没有一个词来形容这种情况,就像Pythonic对应Python一样?)
一般来说,为什么会从更新的版本中移除某个软件包?
有没有更好的方法来管理不再支持的软件包的依赖关系?
1个回答

在更新的版本中,存储库中的软件包会因不同原因而被移除。
通常,软件包名称会与其版本有关。在这种情况下,可能存在更新的版本。这种情况下,您的软件包的依赖关系可能需要更新。然而,这更像是替换而不是纯粹删除软件包。
当软件包不再进行活动开发,并且它们处于无价值状态时,通常会删除软件包。保留未修复重要错误的软件包是没有意义的。
另一个原因可能是没有维护者再继续工作了。这甚至可能发生在Debian上,因为很多Ubuntu的软件包都是从Debian同步过来的。这是一个兴趣问题。如果当前的维护者没有时间或热情了,该软件包将被列入孤立软件包列表。这样可以让社区看看是否有其他人愿意接手。如果没有,经过一段时间后,该软件包将被删除,因为假设没有人对该软件包感兴趣。
在您的特定情况下,GNU Fortran 77已被GNU Fortran 95编译器取代。因此,运行时库也已被删除。我不确定这是否对您有帮助,但您的软件包应该能够在新的Fortran编译器上运行(如果是开源的话)。然后它将使用可用的新库。