homebrew、macports或其他软件包安装工具的区别/用途是什么?

我最近刚从Ubuntu换到Mac。我对mac在Ubuntu中没有方便的sudo apt-get感到失望。我听说我应该使用自制的,但我不确定自制的或macports做什么?

188308 次浏览

默认情况下,Homebrew将包安装到您的/usr/local。Macport命令需要sudo来安装和升级(类似于Ubuntu中的apt-get)。

详情如下:

本网站建议使用Hombrew: http://deephill.com/macports-vs-homebrew/

而本网站列出了使用Macports: http://arstechnica.com/civis/viewtopic.php?f=19&t=1207907的优点

我最近也从Ubuntu换了,我喜欢使用自制的(它简单易用!),但如果你喜欢使用sudo, Macports可能是更好的选择!

Homebrew和macports都解决了同样的问题——那就是安装没有与osx捆绑的公共库和实用程序。

通常这些是与开发相关的库,这些工具最常见的用途是用于osx的开发人员。

它们都需要安装xcode命令行工具(你可以从https://developer.apple.com/单独下载),对于某些特定的包,你需要安装整个xcode IDE。

xcode可以从mac应用商店安装,它是免费下载的,但它需要一段时间,因为它大约5GB(如果我没记错的话)。

macports是来自BSD的端口实用程序的osx版本(因为osx源自BSD,这是一个自然的选择)。对于任何熟悉BSD发行版的人来说,macports都是很熟悉的。

homebrew和macports之间的一个主要区别;我更喜欢自制的原因是它不会覆盖应该在osx中“本地”安装的东西。这意味着,如果有可用的本机包,homebrew将通知您,而不是覆盖它,从而导致进一步的问题。它还在用户空间安装库(因此,你不需要使用“sudo”来安装东西)。这也有助于摆脱库,因为所有东西都在你可以访问的路径上。

Homebrew还拥有更活跃的用户社区,它的软件包(称为公式)也经常更新。


macports不覆盖本机OSX包-它提供自己的包 版本-这是我更喜欢macports而不是自制的主要原因 你需要确定你在使用什么,以及苹果的变化 不同时间的港口,已经知道是落后的岁月 一些项目的更新

你能给一个参考显示macports覆盖本机OS X 包吗?据我所知,所有的macports安装都是在 /opt/local < / p >

也许我应该澄清一下——在我的回答中,我并没有说macports会覆盖OSX本机包。它们都分别安装项目。

为了更好的兼容性,当你应该“本地”安装(使用库/工具的首选安装程序)时,Homebrew会警告你。这就是我的意思。它还将使用OS x中可用的尽可能多的本地库。

我们真的不喜欢家酿/家酿的傻瓜

然而,我们确实喜欢被愚弄的人!

OS X附带的东西或由 RubyGems, CPAN或PyPi不应该被欺骗。有很好的理由 : < / p >

  • 重复的库经常破坏构建
  • 细微的错误会出现在重复的库中,在较小程度上,重复的工具也会出现
  • 我们希望你能更努力地让你的公式适用于OS X自带的东西

你可以用自制工具(可选)覆盖macosx提供的实用程序版本。

目前,由于其成熟度,Macports的软件包(~18.6 K)比Homebrew公式(~3.1K)多得多。不过,Homebrew正在慢慢赶上来。

Macport包往往由一个人维护。

Macports可以保留多个版本的包,你可以启用或禁用它们来测试。有时这个列表可能会损坏,您必须手动编辑它以使内容恢复正常,尽管这并不太难。

两个包管理器都要求定期更新。这可能需要一些时间。

注意:在您的系统上可以同时拥有两个包管理器!这不是其中之一。Brew可能会抱怨,但Macports不会。

此外,如果您正在处理python或ruby包,尽可能使用虚拟环境。

MacPorts是正确的选择。

  1. 就像@user475443指出的,MacPorts有很多很多包。使用brew,你很快就会发现自己被困,因为你需要的公式不存在。

  2. MacPorts是一个原生应用程序:C + TCL。你根本不需要鲁比。要在Mac OS X上安装Ruby,你 可能需要MacPorts,所以只使用MacPorts,你会很高兴的。

  3. MacPorts真的很稳定,8年来我从来没有遇到过问题,我的整个Unix生态系统都依赖于它。

  4. 如果你是一个PHP开发人员,你可以安装最新版本的Apache (Mac OS X使用2.2),PHP和所有你需要的扩展,然后用一个命令升级。忘记在Homebrew上做同样的事情。

  5. MacPorts支持组

    foo@macpro:~/ port select --summary
    
    
    Name        Selected      Options
    ====        ========      =======
    db          none          db46 none
    gcc         none          gcc42 llvm-gcc42 mp-gcc48 none
    llvm        none          mp-llvm-3.3 none
    mysql       mysql56       mysql56 none
    php         php55         php55 php56 none
    postgresql  postgresql94  postgresql93 postgresql94 none
    python      none          python24 python25-apple python26-apple python27 python27-apple none
    

    如果你同时安装了PHP55和PHP56(有许多不同的扩展),你可以用一个命令在它们之间交换。所有相关扩展都是组的一部分,它们将在选定的组中被激活:php55或php56。我不确定Homebrew是否有这个功能

  6. Ruby爱好者喜欢用Ruby重写所有东西,因为他们唯一放心的就是Ruby本身。