如何简化我的包管理器堆栈?

时间:2015-05-07 20:34:19

标签: package-managers package-management

我不知道这是怎么回事。我是一名Web开发人员,我使用Ubuntu,这里只是我正在使用的一些包管理器。

  • apt-get for system-wide packages
  • npm for node packages
  • pip for python packages
  • pip3 for python 3 packages
  • cabs for haskell packages
  • 用于php包的composer
  • bower for front-end packages
  • gem for ruby​​ packages
  • git for other things

当我在新VM上启动一个新项目时,我必须安装来自十几个不同地方的十几个包管理器,并使用它们来创建一个开发环境。这只是失控。

我发现基本上可以通过从apt安装python包来避免安装和使用pip / pip3,例如sudo apt-get install python3-some-library。这节省了必须使用一个包管理器。棒极了。但后来我坚持使用这些软件包的Ubuntu版本,这些版本通常很旧。

我想知道的是,是否有一个元包管理器可以帮助我替换其中的一些部分,所以我的开发环境不是那么难以复制?

1 个答案:

答案 0 :(得分:1)

我考虑过让一个包管理员为了这个原因而统治他们。从来没有完成它,需要太多的努力来保持兼容。对于每个包管理器,您都有一个庞大的社区来支持它的维护。

我最好的建议是尝试减少每种类型项目的工具链。理想情况下,您不需要为您所工作的每个项目使用您熟悉的每种语言。你使用了多少个同时使用python 2和python 3的项目?

继续使用apt作为您的系统软件包,并随身携带git。从那里尝试坚持每个项目一种语言。 AFAIK您列出的所有软件包管理器都支持从git安装软件包。您提到的语言都具有可比较的工具集,因此请使用可用于目标语言的工具链。

我与使用composernpmbowerbundlermaventar.gz文件的团队合作前端SPA因为这些是他们所知道的工具。最重要的是,他们只是将vagrant用作部署者。我们考虑了我们的工具链并描述了我们的需求,并意识到一旦我们为手头的任务采用适当的工具,它就可以用一种语言表达。