【问题标题】:Difference between dependency and package managers?依赖项和包管理器之间的区别?
【发布时间】:2014-02-05 20:33:38
【问题描述】:

实际上,这些本质上是同义词吗?还是我缺少什么?我使用过 Composer (PHP)、CocoaPods (Objective-C) 和 Bundler (Rails)。我相信他们将自己描述为依赖管理器,但他们也可以被视为包管理器吗?

【问题讨论】:

标签: dependency-management package-managers


【解决方案1】:

我会说是的。鉴于 javascript 社区将这些工具(NPM 和 bower)的版本称为“包管理器”,我认为开发社区基本上已经将这些术语同义了。

编辑我要回溯一下。一般来说,我认为术语package manager 与第三方代码的交付和安装有关。也就是说,npm 被正确命名为node package manager。在我看来,dependency manager 是另一回事。它是一个运行时编排工具。例如,有一些依赖管理器只是在浏览器中运行以按正确的顺序加载资产文件(想想 requireJS、browserify、cartero 等……或者想想 Symfony2 或 Laravel 中的依赖注入容器),但你不会不要打电话给那些包管理器。包管理器类似于 Debian 的 dpkg 或节点社区的 bower,它实际上会为您下载第三方库(当前不在您的软件套件中)。现在,我认为当包管理器决定足够聪明地为我们解析版本号时,就会出现问题。因为像npm 这样的工具可以确保我们声明的每个软件都具有其依赖项的所有正确版本(通过为我们下载依赖项链),我们希望将其称为依赖项管理器。但我认为说它是一个包管理器,恰好做版本解析更合适。不过,它实际上更像是一种交付机制,而不是运行时工具。

说了这么多,我想听听其他人对此有什么看法。

【讨论】:

    【解决方案2】:

    不,它们不是同义词。看看那个答案的区别

    https://stackoverflow.com/a/27290095/4016254

    【讨论】:

      猜你喜欢
      • 2020-04-26
      • 2020-07-27
      • 2018-10-20
      • 1970-01-01
      • 1970-01-01
      • 2018-03-16
      • 1970-01-01
      • 2020-08-31
      • 2014-01-28
      相关资源
      最近更新 更多