从开发人员而不是发行版存储库安装软件包可能会出现哪些问题

从开发人员而不是发行版存储库安装软件包可能会出现哪些问题

对于某些人来说,这可能听起来像是一个微不足道的问题,但尽管我已经使用 Linux 好几年了,但我还没有真正弄清楚这个问题。

背景信息很少;我最近将系统从 Mint12 升级到 Mint14,当我开始安装 eclipse 时,我意识到我需要再次安装 SVN。事实证明,最新版本是 1.7.8(截至目前),而我从存储库获得的版本是 1.7.5。现在,有人可能会争论这是否是一件大事,但我个人喜欢与当前版本保持同步,以避免下游问题。

我想知道跳过存储库并从开发人员主页(本例中为 subversion.apache)安装可能会出现什么样的问题。

答案1

与其他系统不同,其他系统使用“开发人员提供,人们使用”部署策略(Windows,我看着你),在类 UNIX 发行版中,通常有一个包管理器和一些管理其包的团队。

主要的重点是让一切都能很好地协同工作。至少当我使用 Windows 时,通常的情况是,如果程序要安装较新的版本,它就会更新 DLL,但没有任何东西可以控制一切是否都能与新版本的库一起正常工作,您只需添加更多文件即可丛林里,如果有什么东西坏了,它可能会坏得很厉害。

通过包管理,新版本是(或应该在发布之前进行测试,这样您就不会遇到下游问题。非发行版软件包可能存在的问题是它们可能尚未针对您的发行版进行真正的测试,或者可能缺少元数据中的依赖项或限制。这是关于。如果您打算从开发人员那里安装,而不是等待您的发行版发布其软件包,请选择软件包。只要您继续使用包管理器,您就不会冒使系统变得混乱的风险。

如果您决定从源代码编译或简单地解压 tarball,请在执行make install以下操作之前三思而后行/:您可能会覆盖文件或添加包管理器未跟踪的文件,这可能会通过安装不兼容的文件、通过更改来破坏您的系统您无法通过使用包管理器等删除包来撤消设置。这也是您永远不想使用开发人员提供的安装脚本(nVidia 驱动程序...)的原因。

可以将其视为熵:包管理器实际上会跟踪它,因此如果需要,它可能会违反热力学第二定律。当您使用第三方安装脚本或仅使用第三方安装脚本时make install,您会增加系统的熵而不跟踪它。完成此操作后,确保删除添加的任何内容的唯一机会是恢复备份或重新安装系统。

长话短说:

  • 您正在绕过发行版级别的测试,该测试试图捕获同一发行版中分发的软件特有的问题。

  • 您正在绕过包管理器,如果出现任何问题,可能会导致您的系统进入不可恢复的状态。

最后,就像 @jordanm 所说,权衡利弊。如果可能,请为您的包管理器寻找第三方包,这至少可以帮助您完成上面的第二个项目。

相关内容