MacPorts、Fink、Homebrewの長所と短所は何ですか?


155

私はUbuntu LinuxからMacに移行しているところです。すべてが新しく、たくさんのことを再学習しています。

Linuxでは、ソフトウェアパッケージを管理する優れたapt-getがありました。私はMacで代替手段を探して、MacPorts、Fink、Homebrewについて知りました。

このコンピューターは、主にRuby on Railsアプリケーションの開発に使用します。

それで、それらの違いは何ですか?長所と短所はどちらですか?どれが最適に保守され、より多くのパッケージがありますか?


5
タイトルを編集して、実際の質問と一致するようにしました。ほとんどのStack Exchangeサイトでは、「最高」を求める質問は嫌われています。
ロイックウォルフ

1
なぜこれらのルビーの宝石では十分ではないのが必要なのですか?
マーク

重複は常に悪くない理由の詳細については:apple.stackexchange.com/questions/11461/...もあり、さらにいくつかの選択肢がある
cregox

自分で使用したことはありませんが、おそらくpkginとの比較も役立つでしょう。
デニス14年

回答:


119

間違いなく自作。Finkで始めてから、MacPorts(幸せ)に切り替えてからHomebrew(ずっと幸せに)に切り替えました。これらはそれぞれを使用するための私の理由です(もしあなたがプロリスト):

フィンク

  • Aptベース-Debianベースの環境から来ているなら、自宅にいるように感じます
  • バイナリパッケージ-パッケージはバイナリとして利用できるため、コンパイル時間が長くなりません。実際には、プリコンパイルされたバイナリは常に時代遅れであり、とにかくシステム用のものをコンパイルしなければならなかったことがわかりました
  • パッケージのまともな選択

MacPorts

  • パッケージ/ポートの最大の選択
  • 一般的に非常に最新の
  • ビルドをカスタマイズできる素敵なバリアントシステム
  • 簡単で直感的なポートファイル

自作

  • 非常に最新の
  • OS Xに付属するものを最大限に活用します。FinkやMacPortsとは異なり、Rubyベースの小さなツールをインストールするためだけにRubyをビルド/インストールする必要はありません。
  • にインストールする/usr/localため、PATHどこでも変更する必要はありません
  • すべてがユーザーが所有するため、インストールするために潜在的に危険なルートアクセスを必要とするパッケージはありません。
  • インストールされたすべてのパッケージは、独自のセラーにきれいにサンドボックス化されるため、システム全体に浮遊ファイルがなく、bin、manなどからのシンボリックリンクだけがあります。
  • 驚くほど簡単に独自の数式ファイル(パッケージ記述子など)を作成できます
  • あなたはルビーのバックグラウンドから来ているので、別のプラスはすべてがルビーで書かれており、すべての式は単純なルビースクリプトです

pkgin

  • 非常に最新の
  • プリコンパイルされたバイナリによる高速インストール
  • / opt / pkg /にインストールされているすべてのもの
  • pkgsrcコミュニティとJoyentが支援
  • NetBSD、DragonFly BSD、Solaris、Debian、Mac OS X、Minixで動作することが知られています

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

http://pkgin.net/


33
彼らは私が別のパッケージングシステムを使用する2つの主な理由です-自家製のためにあなたは「を/ usr / localにインストールします」と「OS Xに付属しているものの活用」は問題であることを主張していることに注意してください
マーク

5
/ usr / local / binがデフォルトのMac OS Xパスにないことを考えると、最も確実にPATHを変更する必要があります。brewはその場所にすべての新しいリンクを配置するため、一度だけ実行する必要があります。それがインストールするビン(「樽のみ」を除くが、それはここではノイズです)。
テリーN 14年

4
@Markどのパッケージングシステムを好みますか?
デビッドモールズ

5
/ opt / localに置く@ jedd.ahyoung私はMacPortsのを好む(Finkは/ SWに置く)
マーク・

5
@ GDP2に同意する必要があります。私はLinuxの新しいMacユーザーです。醸造の開発者は非常に悪い態度を持っています。このコメントを投稿するとき、brewのgithubには13の問題しかないと思いますか?彼らはユーザーを聞きたくありません。彼らは問題を望んでいません。彼らはあなたが開いてすぐにそれらを閉じた問題を無視します。私はgithubプロジェクトでそのような態度を見たことはありません。新しいユーザーとして、私は数ヶ月間brewを使用していましたが、今日は別のものに切り替えてこの質問を見つけようと考えています。brewを使用した経験は、これまでの人生で最悪の経験
でした-sgon00

57

MacPorts

Mac OS Xからより独立しています。つまり、MacPortsはMac OS Xで既に利用可能なシステムライブラリとソフトウェアの多くを無視し、代わり独自のものプルします。ライブラリとソフトウェア。

ただし、インストールしたパッケージはAppleのシステムアップデート/アップグレード手順の影響を受けにくいため、この種の選択はより安全です。


自作

既存のMac OS Xにインストールされたパッケージにより依存しているため、パッケージのインストールを高速化し、冗長なライブラリを最小限に抑えます。

ただし、インストールされたパッケージは、Appleのシステムアップデート/アップグレードのために破損する可能性があります。

したがって、これらは2つの異なる種類のトレードオフです。

また、Homebrewはデフォルトで/ usr / localを引き継ぎますが、一部の人々はこれを unix-traditionと何らかの形で競合し、すでに何かをインストールしている場合(MySQLなど)


これらの違いとは別に、これら2つが提供できるパッケージを考慮すると、MacPorts / Homebrewが既にインストールされている場合は、これら2つのコマンドで確認でき、現在提供されているパッケージが表示されます。

port list | wc -l
brew search | wc -l

また、MacPortsにはHomebrewよりも多くのパッケージがあることがわかります。

(19399対2016年5月13日の3583)


17
パッケージ数の違いについてのコメント:Homebrewには、独自のパッケージングシステム(rubygems / pip / cpan…)を備えたプログラミング言語や、おそらくより適切なOS Xインストーラーが利用可能なソフトウェア(MacTeX)のパッケージは含まれません。 。また、重複および古いバージョンはデフォルトのリポジトリにはありませんが、代替タップリポジトリに含まれます。これを、たとえば含まれているすべてのPythonバージョン用のIPythonポートが含まれているmacportsと比較してください。macportsのパッケージの数を自然に増やすのは、一種の異なる哲学です。
デビルスキー

2
素晴らしいリンク! terrychay.com/article/macports-vs-homebrew.shtml ありがとうございます!
ジェフバージズ14年

@YaOz、自作を変更して、他の何かを使うことができ/usr/localますか?
パセリエ

41

少なくとも2014年の終わりごろに本当のように思える私自身の考えのいくつかを追加するだけです。

数年前のHomebrewは、マインドシェアの点で間違いなく優位です。多くのブログで、Homebrewがどれだけ幸せであるかについて語っている人々がいます。通常、「MacPortsは全世界を引っ張る」対「Homebrewはあなたが既に持っているものを活用する」ということです。

ただし、IMO、MacPortsは数年前とは異なる獣です。私が最初にOS Xに切り替えてMacPortsを使用していたとき、ほとんどすべてがソースから構築されていたため、MPの哲学は本当にイライラしていました。新しいインストールは特に苦痛/遅いものでした。しかし、過去1年ほどで、純粋に私自身の印象に基づいて、MPパッケージの90%がバイナリであるように思われます。私が収集したものから、Homebrewも「ボトル」でこの方向に動いていますが、この時点でHB経由でインストールするほとんどのものはソースからコンパイルされるという印象を受けます。

そのため、最近では相殺的な意見を述べるためだけに、MacPortsが「より速い」オプションであるように思われます。しかし、MPのほとんどの人々の意見は、2011年から12年頃の経験に基づいているようで、実際にこれを考慮に入れてはいけません。私は通常のHBユーザーではないので、これを一粒の塩で取ります(両方を並べて使用するのはかなり苦痛です)。

HBには、長期的にはおそらく「戦争に勝つ」ことを意味する利点があると思います

  • HBはすべてRubyですが、MacPortsとそのパッケージ式はTCLで記述されていますが、TCLは、必ずしも一般的なスクリプト言語ではありません。つまり、独自のポートファイルを作成するのは非常に簡単です。
  • HBはGitHubに基づいているため、新しい寄稿者を歓迎しているように見えますが、MacPortsは私が思うにSVNリポジトリをホストしています。
  • 前述のように、一般的なコンセンサスは、MacPortsがHBに取って代わられたということです。

それ以外の場合、YaOZlとkLyはsudo、依存関係などの点で主な違いをかなりよくカバーしていました。個人的には、MacPortsが他のプログラムが何かを期待していないこと/opt/local、root権限でインストールされていることなどに関して頭痛の種になることが時々あります。 MacPortsですが、Rubyの通常のGem管理を介してインストールしないのはおかしいでしょう。それ以外は、私は独自の小さな世界を構築し、事前にパッケージ化されたOS Xライブラリに依存しないというMacPortsの哲学の大ファンですが、動作し、ほとんどの場合、すべてが非常に単純です。これは、パッケージマネージャーに本当に必要なものです。そして、私が述べたように、この時点でほとんどのものを設定するのは非常に簡単です。

その一部が役に立てば幸いです。


「言及したように、一般的なコンセンサスは、MacPortsがHBに取って代わられたということです。...これは非常に表面的な声明のように感じられます...人気があることと品質を提供することは同じではありません。
ドミトリザイツェフ

3

Brewは私が使用するのに完全にスムーズだったので、その短所について話すことはできません。MacPortsのいくつかの欠点:

最初の2つの点については、いくつかの非常に一般的な質問があります。


これは、10.6にImageMagickをインストールした私の経験でした。brewは非常に簡単でしたが、JP2デリゲートは含まれていませんでした。imagemagick.org/script/binary-releases.php
Nemo

2
brewとmacportsにはXcodeコマンドラインツールが必要なので、ここでも同じです。
マーク

@Mark私はあなたが何を意味するのか分かりませんが、Xcodeなしで私にとって完璧に機能しました。
ニモ

2
brew および MacPorts 用のコンパイラが必要になります。これらは、Xcodeコマンドラインツールからインストールできます。Xcode アプリケーションは必要ありません。
nohillside

1
ファイアウォールの向こうにあるものを同期するのがいかにいことか忘れてしまいました...
-rogerdpack
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.