什么时候在 aptitude 和 CPAN/Gems/PyPI 中使用包?

Ben*_*ack 5 package-management gems

什么时候从官方.deb存储库安装包,与什么时候用语言的包管理器安装的一般规则是什么?上游存储库中的那些经常至少有点过时,但我也不希望我的软件包与“官方”软件包发生冲突,而且似乎 aptitude 将迫使我安装官方无论如何,在许多情况下。

txw*_*ger 6

这是一个很难笼统回答的问题。

官方 .deb 包为您提供稳定性和 Ubuntu 社区的全力支持。如果您不需要最新版本,使用此解决方案可能会更好。您还可以使用包管理器支持更新、删除等。

如果您需要上游的支持,或者需要最新的功能,最好从 CPAN、gem、pear 等发行系统中获取。


Ale*_*lli 5

在我的(不可否认的)经验中,特定于语言的包管理器.deb在跟踪完全超出语言边界的依赖项方面做得不如那些管理器(我特别考虑对 C 编码的依赖项)包包装用于 Python、Perl、Ruby 等的库)。

如果(比如)一个 Pypi Python 包'barfoo'需要一些库libfoobar来构建_bf.so包使用的Python 扩展,并且libfoobar至少需要在 release 5.2,则由您来跟踪哪些.deb提供合适的版本libfoobar(并且您可能找不到一,如果 Pypi 包的跟踪接近上游的最新和最好的) - 并以某种方式跟踪它,以防您barfoo稍后卸载(因此libfoobar供应商变得“孤立”并且可以/应该被删除)。

我认为将 Pypi/CPAN/etc 与其他软件包分发系统集成的问题还不能被视为“已解决”的问题。对于最小的管理头痛,如果您可以与官员相处.deb(不需要最新和最好的feechurz&c),我认为这是可取的;当然,在另一个极端,对于您确实希望进行超级更新的包(例如,您是该包的上游作者/维护者之一;-),可以选择在任何版本控制中保留一个新的 repo包使用的系统(svn,hg,git,bazaar,...)并保持它从源代码构建。Pypi/CPAN/&c 位于“中间”。当然,有时这种中间方式也是可取的。

而且,这可能被视为一种选择是建立自己的.deb包(按无论是PyPI中/ CPAN /&C的,甚至对上游资源),并保持你的这种封装库(对于那些包,你觉得官方.deb回购太差或落后)。这并不比以其他方式安装(手动跟踪语言之外的依赖项)麻烦多少,并且有助于识别“孤儿包”等(另外,如果您发布您的包,您还可以帮助其他人;-)。