題:
MacPorts,Fink和Homebrew的優缺點是什麼?
JoaoHornburg
2011-12-01 22:46:47 UTC
view on stackexchange narkive permalink

我只是從Ubuntu Linux遷移到Mac,一切都是新的,並且我在重新學習很多東西。

在Linux上,我非常擅長管理軟件包。我在Mac上搜索了一個替代產品,並找到了有關MacPorts,Fink和Homebrew的信息。他們?有哪些優點和缺點?哪個維護得最好並且有更多軟件包?

我修改了您的標題,使其與您的實際問題相符。在大多數Stack Exchange網站上,要求“最好”的問題都被拒絕。
為什麼您需要其中任何一種寶石都不足夠?
有關為什麼重複並不總是很糟糕的更多信息,請訪問:http://apple.stackexchange.com/questions/11461/is-there-any-alternative-to-macports還有另外一些替代方法
我自己從未使用過它,但是也許與[pkgin](http://pkgin.net)進行比較也很有用。
五 答案:
kLy
2011-12-30 00:19:10 UTC
view on stackexchange narkive permalink

絕對是自製的。我從Fink開始,然後切換到MacPorts(更快樂),然後切換到Homebrew(非常快樂)。這些是我使用每種工具的原因(如果需要的話,請使用專業列表):

Fink

  • 基於公寓-如果您來自基於Debian的公寓,您將有賓至如歸的感覺環境
  • 二進制軟件包-軟件包可作為二進製文件使用,因此編譯時間不長。實際上,儘管我發現預編譯的二進製文件總是過時了,但無論如何我都不得不為系統編譯東西
  • 不錯的軟件包選擇

MacPorts

  • 最大的軟件包/端口選擇
  • 通常非常最新
  • 很好的 variants系統,可讓您自定義構建
  • 簡單直觀的端口文件,還允許您添加自己的端口文件
  • 支持許多版本的OSX和macOS(包括PowerPC版本),請參見其他答案

自製軟件

  • 非常最新
  • 最大程度地利用了OS X所提供的功能。與Fink或MacPorts不同,它沒有要求您從頭開始構建/安裝ruby和庫,只是為了安裝一些基於Ruby的小型工具。
  • 安裝到 / usr / local 中,因此不需要修改 PATH 到處
  • 用戶擁有的所有內容,因此沒有軟件包需要具有潛在風險的root用戶訪問權限來安裝
  • 每個安裝led包被乾淨地沙盒化到自己的地窖中,因此您不會在系統上散佈文件,而只是來自bin,man等的符號鏈接。
  • 非常容易來創建自己的文件自己的公式文件(即包描述符)
  • 由於您來自ruby背景,另一個優點是所有內容均以ruby編寫,並且所有公式都是簡單的ruby腳本

pkgin

  • 最新
  • 由於預編譯的二進製文件而安裝速度更快
  • 由pkgsrc支持的/ opt / pkg /
  • 中安裝的所有內容社區和Joyent
  • 已知可以在NetBSD,DragonFly BSD,Solaris,Debian,Mac OS X,Minix上工作

https://pkgsrc.joyent.com/install-on-osx /

http://pkgin.net/

請注意,對於自製軟件,您可以說“安裝到/ usr / local中”和“利用OS X附帶的內容”是問題-這是我使用其他打包系統的兩個主要原因
鑑於/ usr / local / bin不在默認的Mac OS X路徑中,因此您肯定必須修改PATH-您只需要執行一次,因為brew放在那個地方鏈接到所有新它安裝的垃圾桶(“僅可放入垃圾桶”除外,但這是噪音)。
@Mark您喜歡哪種包裝系統?
@Mark我是第二個David的問題,因為我最近在看到對/ usr / local目錄的操作之後放棄了Homebrew。Homebrew在要在此處編寫的其他應用程序中無法真正發揮作用。
@jedd.ahyoung我更喜歡將Macports放在/ opt / local中(將Fink放在/ sw中)
不幸的是,自製軟件似乎越來越多地拒絕某些用例和API,以至於維護者表達了[公然無視](https://mikemcquaid.com/2018/03/19/open-source-maintainers-owe-you-nothing /)。Macports似乎是一個更好的選擇,因為這種趨勢似乎以一種令人不安的方式普遍存在於自家釀製中。一次,自製軟件就是[全部有關幫助用戶的信息](https://www.quora.com/Whats-the-logic-behind-Google-rejecting-Max-Howell-the-author-of-Homebrew-(無法轉換為二叉樹/ answer / Max-Howell),但已逐漸遠離它。
我必須同意@GDP2。我是Linux的新Mac用戶。[brew](https://github.com/Homebrew/brew)中的開發人員態度非常糟糕。當我發布此評論時,您可以相信brew的github中只有13個問題嗎?他們不想听用戶。他們不想要任何問題。他們只是忽略您打開並立即關閉的所有問題。我從未在任何github項目中看到過這種態度。作為新用戶,我已經使用brew幾個月了,今天我正考慮改用另一種啤酒,並發現了這個問題。迄今為止,使用啤酒的經歷是我一生中最糟糕的經歷
我使用Homebrew多年來已經有越來越多的錯誤,以至於我無法忍受了。切換到MacPorts-沒有錯誤,很不錯的社區提供幫助,沒有遺憾,再見!
YaOzI
2013-04-21 14:11:42 UTC
view on stackexchange narkive permalink

MacPorts

它更獨立於Mac OS X,這意味著MacPorts只會忽略Mac OS X中已經提供的許多系統庫和軟件,而將其拉成自己的,當您安裝的實用程序需要一些大型庫和軟件時,速度可能會變慢。

但是這種​​選擇比較安全,因為安裝的軟件包較少受蘋果系統更新/升級過程的影響。


Homebrew

它更依賴於現有的Mac OS X安裝的軟件包,因此這將加快軟件包的安裝速度並盡量減少冗餘庫。

但是的風險是安裝的軟件包可能由於Apple的系統更新/升級而被破壞。

因此,這是兩種不同的類型

。此外,默認情況下,Homebrew會接管 / usr / local ,而有些人不喜歡它,因為它與某種方式衝突unix傳統,可能會導致p如果您已經在其中安裝了任何東西(MySQL等),則會出現問題。


除了這些區別之外,考慮到這兩個可以提供的軟件包,您可以使用這兩個命令進行檢查安裝了MacPorts / Homebrew,向您顯示它們當前提供的軟件包:

 端口列表| wc -lbrew搜索| wc -l  

,您會發現MacPorts的軟件包比Homebrew多得多。

(2016年5月13日19399 vs 3583)

關於不同數量的軟件包的說明:Homebrew絕對不包含用於具有自己的打包系統(rubygems / pip / cpan…)的編程語言的軟件包,或不存在可以說是更合適的OS X安裝程序的軟件的軟件包(MacTeX) 。同樣,重複和較舊版本不在默認存儲庫中,而是包含在備用* tap *存儲庫中。將此與macports進行比較,macports例如包含所有包含的Python版本的IPython端口。這是一種不同的哲學,自然會增加macport中的軟件包數量。
優秀的鏈接! http://terrychay.com/article/macports-vs-homebrew.shtml謝謝!
@YaOz,當然可以更改自製軟件,以使用`/ usr / local`以外的其他東西嗎?
@Pacerier我相信除了`/ usr / local /`以外的任何地方都是“不受支持的”或“不受歡迎的”。
Hal
2014-09-18 16:11:48 UTC
view on stackexchange narkive permalink

至少添加一些我自己的想法,至少在2014年底左右才是真實的想法。

在幾年前,國產啤酒在思想分享方面絕對占優勢。您會發現很多博客都在談論人們對Homebrew的滿意程度-通常是因為整個“ MacPorts拉動了整個世界”與“ Homebrew充分利用了您已有的東西”之類。

但是,海事組織(IMO),MacPorts與幾年前相比已經是另一回事了。當我第一次切換到OS X的&使用MacPorts時,MP理念的確令人沮喪,因為幾乎所有內容都是從源代碼構建的。新安裝特別麻煩/緩慢。但是在過去的一年左右的時間裡,純粹根據我自己的印象,似乎90%的MP軟件包都是二進製文件&,因此現在安裝確實非常快。從我的收集來看,自製軟件也正朝著“瓶子”的方向發展,但我給人的印像是,此時您通過HB安裝的大多數東西都是從源代碼編譯的。

因此,提供反駁的意見,MacPorts如今似乎實際上是“更快”的選擇。但是,大多數人對MP的看法似乎是基於大約2011-12的經驗,因此&並沒有真正考慮到這一點。儘管我不是普通的HB用戶(但並排使用它非常痛苦),但還是要加些鹽。從長遠來看,“戰爭”

  • HB都是Ruby,而MacPorts及其程序包公式是用TCL編寫的,而TCL並不是一種流行的腳本語言。也就是說,創建您自己的端口文件非常簡單。
  • HB基於GitHub &開發,因此似乎對新貢獻者更為歡迎,而MacPorts在我認為的某個地方託管了自己的SVN存儲庫-基本上反映了不同之處我猜這兩個項目的年齡。
  • 如前所述,人們普遍認為,MacPorts被HB &正確或錯誤地取代,這吸引了更多的人。

否則YaOZl & kLy涵蓋了主要區別sudo,依賴項等都很好。我個人確實發現MacPorts有時會引起一些麻煩,例如其他程序不希望在 / opt / local 中包含任何內容,安裝具有root權限的東西等。&通常有些事情是最好的沒有與MacPorts一起安裝(例如,您可以通過MacPorts安裝Rails,但是如果不通過Ruby的常規Gem管理來安裝它,您會發瘋)。除此之外,儘管我非常支持MacPorts建立自己的小世界&而不依賴某些預包裝的OS X庫的哲學-當它起作用時,並且大多數情況下,一切都變得非常簡單。您真正想要的是包管理器。正如我所提到的,在這一點上,它可以很快地完成大多數事情。

希望其中一些有用。

“如前所述,人們普遍認為MacPorts已被HB&所取代,無論對與錯,這都會吸引更多的人加入。”……這聽起來像是一個膚淺的表述……受歡迎與提供質量是不一樣的,絕不意味著第二個被第一個“取代”。
MacPorts現在正在使用Github。請參閱https://guide.macports.org/#project.github:“ MacPorts項目使用Git分佈式版本控制系統來管理整個項目的代碼。我們的主存儲庫託管在GitHub上。 我們維護幾乎所有項目代碼和文檔的公共存儲庫,包括MacPorts系統本身,MacPorts端口甚至您現在正在閱讀的指南的GitHub存儲庫。”
Wowfunhappy
2020-08-31 23:06:30 UTC
view on stackexchange narkive permalink

(到目前為止)似乎沒有提到的其他答案是,MacPorts對舊版macOS具有出色的支持。Homebrew僅支持Apple當前支持的操作系統,這通常意味著最近三個版本。例如,從2020年8月開始,只有Catalina,Mojave和High Sierra與Homebrew兼容。

相比之下,MacPorts可以安裝在Tiger(!)上,並且該項目維護特殊的補丁程序以使軟件盡可能地工作。他們還維護一個“傳統支持”庫,該庫將符號從新版本的macOS反向移植到較舊的版本。在編譯時鏈接到此庫可以使各種新軟件突然在舊系統上運行!

因此,如果您正在運行舊版本的macOS,或者如果您認為可能需要在Apple的到期日期之後使用當前操作系統,那絕對是使用MacPorts的原因。

Nemo
2015-10-28 15:25:24 UTC
view on stackexchange narkive permalink

我可以輕鬆使用Brew,因此我無法告知它的缺點。MacPorts的一些缺點:

關於前兩點,有幾個非常受歡迎的問題。

這是我在10.6上安裝ImageMagick的經驗;brew非常簡單,但是不包括JP2委託。http://imagemagick.org/script/binary-releases.php
brew和macports僅需要Xcode命令行工具,因此此處相同。
@Mark我不確定您的意思,但是brew在沒有Xcode的情況下對我來說非常有效。
您將需要用於brew *和* MacPorts的編譯器,可以通過Xcode命令行工具安裝。您將不需要Xcode *應用程序*。
好吧,這不是http://www.macports.org/install.php所說的。如果安裝說明有誤,那麼安裝就不容易。
問題是Macports知道它可以與完整的Xcode一起使用,而這正是構建服務器使用的-在實踐中,它似乎只能與命令行工具一起使用,但是沒有人準備說它在所有情況下都可以工作,因此更好地確保安裝安全Xcode.app
如果有一種解決方法可以在沒有Apple開發人員帳戶的情況下安裝MacPorts,則絕對值得進行鏈接,但是,恕我直言,這個問題不重要。我的回答涉及標準程序。
我忘記了在防火牆後面同步該東西是多麼的醜陋……好!


該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...