我刚刚从Ubuntu切换到Mac。我很失望mac在Ubuntu中没有方便的sudo apt-get
。我听说我应该使用自制软件但是我不确定自制软件或macports有什么作用?
答案 0 :(得分:142)
MacPorts是可行的方式。
与@ user475443指出的一样,MacPorts拥有更多的软件包。使用brew,您很快就会发现自己被困,因为您需要的公式不存在。
MacPorts是一个原生应用程序:C + TCL。你根本不需要Ruby。要在Mac OS X上安装Ruby,可能需要MacPorts,所以只需使用MacPorts就可以了。
MacPorts非常稳定,8年来我从来没有遇到任何问题,我的整个Unix生态系统继续发布它。
如果您是PHP开发人员,您可以安装最新版本的Apache(Mac OS X使用2.2),PHP和您需要的所有扩展,然后使用一个命令升级所有。忘记用Homebrew做同样的事。
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有这个功能。
Rubists喜欢在Ruby中重写所有内容,因为他们唯一可以放心的就是Ruby本身。
答案 1 :(得分:106)
Homebrew和macports都解决了同样的问题 - 即安装了未与osx捆绑在一起的公共库和实用程序。
通常这些是与开发相关的库,这些工具的最常见用途是针对在osx上工作的开发人员。
他们都需要安装xcode命令行工具(您可以从https://developer.apple.com/单独下载),对于某些特定的软件包,您需要安装整个xcode IDE。
xcode可以从mac app商店安装,免费下载,但需要一段时间,因为它大约5GB(如果我没记错的话)。
macports是BSD端口实用程序的osx版本(因为osx源自BSD,这是一个自然的选择)。对于任何熟悉任何BSD发行版的人来说,macports都会感到宾至如归。
自制软件和macports之间的一个主要区别;我更喜欢自制软件的原因是它不会覆盖应该在osx中“本机”安装的东西。这意味着如果有可用的本机程序包,自制程序将通知您而不是覆盖它并导致进一步的问题。它还在用户空间中安装库(因此,您不需要使用“ sudo“安装东西”。这有助于摆脱库,因为一切都在您可以访问的路径中。
homebrew也享有更活跃的用户社区,其软件包(称为公式)经常更新。
macports不会覆盖本机OSX包 - 它提供自己的包 版本 - 这是我更喜欢macports而不是家庭酿造的主要原因 需要确定你正在使用的是什么以及Apple的变化 不同时期到港口,并已知道落后多年 某些项目的更新
你能给出一个参考,显示macports会覆盖原生OS X. 包?据我所知,所有的macports安装都在
/opt/local
也许我应该澄清一下 - 我在答案中没有说macports会覆盖OSX原生包。他们都单独安装项目。
Homebrew会在您应该“本机”安装“使用库/工具的首选安装程序”时警告您,以获得更好的兼容性。这就是我的意思。它还将使用OS X中可用的许多本地库。来自wiki:
我们真的不喜欢Homebrew / homebrew中的欺骗
但是,我们确实喜欢自来水!
OS X附带的东西,或者是由提供的库 RubyGems,CPAN或PyPi不应该被欺骗。有充分的理由 这样:
- 重复的图书馆定期破坏版本
- 带有重复库的微妙错误,以及较小程度上的重复工具
- 我们希望您更努力地使您的公式与OS X附带的内容一起使用
你可以选择用homebrew覆盖macosx提供的实用程序版本。
答案 2 :(得分:23)
目前,由于其成熟度,Macports拥有的包装数量(~18.6 K)远远超过Homebrew公式(~3.1K)。 Homebrew正在慢慢追赶。
Macport套餐往往由一个人维护。
Macports可以保留多个版本的软件包,您可以启用或禁用它们来测试。有时这个列表可能会被破坏,你必须手动编辑它才能恢复原状,尽管这并不太难。
包裹管理员都会要求定期更新。这可能需要一些时间。
注意:您的系统上可以同时拥有两个包管理器!它不是一个或另一个。 Brew可能会抱怨,但Macports不会。
此外,如果您正在处理python或ruby软件包,请尽可能使用虚拟环境。
答案 3 :(得分:18)
默认情况下,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可能是更好的方法!