我只是从Ubuntu Linux迁移到Mac,一切都是新的,并且我在重新学习很多东西。
在Linux上,我非常擅长管理软件包。我在Mac上搜索了一个替代产品,并找到了有关MacPorts,Fink和Homebrew的信息。
我将主要使用这台计算机来开发Ruby on Rails应用程序。
那么,它们之间有什么区别?有哪些优点和缺点?哪个维护得最好并且有更多软件包?
我只是从Ubuntu Linux迁移到Mac,一切都是新的,并且我在重新学习很多东西。
在Linux上,我非常擅长管理软件包。我在Mac上搜索了一个替代产品,并找到了有关MacPorts,Fink和Homebrew的信息。
我将主要使用这台计算机来开发Ruby on Rails应用程序。
那么,它们之间有什么区别?有哪些优点和缺点?哪个维护得最好并且有更多软件包?
Answers:
绝对是自制的。我从Fink开始,然后切换到MacPorts(更快乐),然后切换到Homebrew(非常快乐)。这些是我使用每种工具的原因(如果您愿意,则使用专业人士列表):
/usr/local
就不需要您在PATH
任何地方进行修改它更独立于Mac OS X,这意味着MacPorts只会忽略Mac OS X中已经可用的许多系统库和软件,而是拉出自己的库和软件,如果您安装的实用程序需要一些大型的库,它们可能会变慢库和软件。
但是这种选择比较安全,因为您安装的软件包受Apple系统更新/升级过程的影响较小。
它更依赖于现有的Mac OS X安装的软件包,因此这将加快软件包的安装速度,并最大程度地减少冗余库。
但是存在安装风险,因为苹果的系统更新/升级,安装的软件包可能会损坏。
因此,这是两种不同的权衡。
另外,默认情况下,Homebrew接管/ usr / local,有些人对此不满意,因为它与Unix传统有某种冲突,如果您已经在其中安装了任何东西(MySQL等),可能会引起问题。
除了这些区别之外,考虑到这两个可以提供的软件包,您可以使用以下两个命令检查是否已经安装了MacPorts / Homebrew,该软件包向您显示了它们当前提供的软件包:
port list | wc -l
brew search | wc -l
您会发现MacPorts的软件包比Homebrew多得多。
(19399 vs 3583在2016年5月13日)
/usr/local
?
只是补充一些我自己的想法,至少在2014年底左右才是真实的想法。
几年前,国产啤酒在思想分享方面绝对占了上风。您会发现很多博客都在谈论人们对Homebrew的满意程度-通常是因为整个“ MacPorts拉动了整个世界”与“ Homebrew利用您已经拥有的东西”之类的东西。
但是,海事组织,MacPorts与几年前相比已经是另一回事了。当我第一次切换到OS X并使用MacPorts时,MP理念确实令人沮丧,因为几乎所有内容都是从源代码构建的。新安装特别麻烦/缓慢。但是在过去的一年左右的时间里,纯粹基于我自己的印象,似乎90%的MP软件包都是二进制文件,因此现在安装确实非常快。从我收集到的信息来看,自制软件也在朝着“瓶”的方向发展,但我给人的印象是,此时您通过HB安装的大多数东西都是从源代码编译的。
因此,如果仅是提供反驳的意见,这些天MacPorts似乎实际上是“更快”的选择。但是,大多数人对MP的看法似乎是基于大约2011-12左右的经验,并没有真正考虑到这一点。尽管我不是经常使用HB的人,但还是要加些盐(并排使用它们会很痛苦)。
我确实认为HB具有优势,但这意味着从长远来看它可能会“赢得战争”
否则YaOZl和kLy很好地涵盖了sudo,依赖项等方面的主要区别。我个人确实发现MacPorts有时会引起一些麻烦,例如其他程序不希望包含任何内容/opt/local
,以root权限安装的东西等,并且有些东西通常最好不要与MacPorts一起安装(例如,可以通过以下方式安装Rails: MacPorts,但您会疯狂地不通过Ruby的常规Gem管理来安装它。除此之外,尽管我非常支持MacPorts建立自己的小世界并且不依赖于某些预打包的OS X库的哲学-当它工作时,并且大多数情况下,一切都变得非常简单。您真正想要的是包管理器。正如我所提到的,在这一点上,它很快就可以完成大多数事情。
希望其中一些有用。
Brew对于我来说使用起来非常顺畅,所以我无法告知它的缺点。MacPorts的一些缺点:
关于前两点,有几个非常受欢迎的问题。