【问题标题】:How can I simplify my stack of package managers?如何简化我的包管理器堆栈?
【发布时间】:2015-07-18 14:55:24
【问题描述】:

我不知道它是如何变得如此糟糕的。我是一名网络开发人员,我使用 Ubuntu,这里只是我正在使用的一些包管理器。

  • apt-get 用于系统范围的软件包
  • npm 用于节点包
  • python 包的 pip
  • python 3 包的 pip3
  • 用于 haskell 包的 cabal
  • php 包的作曲家
  • 前端包的凉亭
  • 红宝石包的宝石
  • git 做其他事情

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

我发现我基本上可以通过从apt安装python包来避免安装和使用pip/pip3,比如sudo apt-get install python3-some-library。这样就不必使用一个包管理器了。棒极了。但是后来我被这些软件包的 Ubuntu 版本所困扰,这些软件包通常很旧。

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

【问题讨论】:

  • 对不起,我不能添加任何有用的东西,但是:我感觉到你了,兄弟。

标签: package-managers package-management


【解决方案1】:

出于这个原因,我曾想过让包管理器来管理它们。虽然从未完成,但要保持兼容需要付出太多努力。对于每个包管理器,您都有一个庞大的社区来支持它的维护。

我的最佳建议是尝试为每种类型的项目减少工具链。理想情况下,您不需要为您从事的每个项目使用您所知道的每种语言。您正在使用多少个同时使用 python 2 和 python 3 的项目?

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-09-16
    • 1970-01-01
    • 1970-01-01
    • 2015-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-24
    相关资源
    最近更新 更多