pkgsrc、Homebrew、Fink 和 MacPorts 能否和平共存?

hpy*_*hpy 6 package-management macports fink homebrew

我听说有些人喜欢同时使用 Fink 和 Macports,因为有些软件包存在于一个而不是另一个中。

最近我在构建和运行像 GRASS 和 Digikam w/MacPorts 这样的包时遇到了麻烦,并开始寻找替代方案。

只是想知道:pkgsrc 和 Homebrew 是否也能与它们共存并很好地运行?

我仍在尝试包管理器,并喜欢在确定一两个之前探索所有的可能性。

谢谢!

rai*_*mue 6

如果 Homebrew 安装在/usr/local. 这是默认值,这是一个糟糕的选择,因为此路径位于编译器和其他工具的默认搜索路径中。因此,从其他打包软件构建可能会选择错误的依赖项,使用 Homebrew 的版本而不是他们自己的版本。

多年前,在项目的最初阶段,甚至 MacPorts 也在使用/usr/local. 但事实证明,正如他们的常见问题解答中所记录的那样,它不与其他工具合作。不幸的是,Homebrew 开发人员不想听到之前的经验并忽略了这些事实......

一般来说,最好只使用一种工具来避免所有问题。MacPorts 正在尽最大努力修补任何硬编码的路径,例如/swFink 使用的路径。所以通常它会起作用,但是安装任何东西/usr/local肯定会导致问题。

我不太了解 pkgsrc 是否真的受到同样的影响,但我最好的猜测是这个问题也适用于它。

MacPorts 中的diikam似乎没有任何开放的错误。您应该使用新票直接向他们报告您的问题以获得帮助。

  • 不,它们不能被覆盖。您可以添加其他路径,但这些路径将始终位于搜索路径的末尾。如果你不明白这一点,你应该意识到这个问题有多么复杂,要么深入研究,要么相信我们。 (4认同)
  • 不,一开始 MacPorts 使用系统提供的库。但这在支持多个版本的 OS X 时是不可维护的,因此该策略已更改为仅依赖于自己的库。如果您还使用 MacPorts,建议不要使用 `/usr/local` 完全有道理。该路径在编译器的默认搜索路径中,无法删除。 (3认同)
  • Homebrew 的重点是安装 OS X 中*不*包含的库和程序。MacPorts 不喜欢使用`/usr/local`,因为 MacPorts 安装了许多已包含在 OS X 中的重复库,并且没有如果用户在`/usr/local` 中安装了相同的库,则需要处理一些奇怪的问题。它还希望将其整个系统与其他一切隔离。MacPorts 和 Homebrew 在这方面有着不同的理念。说 Homebrew 是坏的,因为它将软件安装到 `/usr/local` 类似于说*根本不要使用 `/usr/local`*,这是愚蠢的。 (2认同)