homebrew、macports、またはその他のパッケージインストールツールの違い/使用法は何ですか?[閉まっている]


238

最近UbuntuからMacに切り替えました。sudo apt-getUbuntuにはMacには便利な機能がないのでがっかりしました。私は自作を使用するべきだと聞きましたが、自作またはmacportsが何をするか正確にわかりませんか?



8
数年前、自作の正面玄関には、「自作はRubyで書かれているので優れている」というような発言がありました。Rubyのことを気にかけることはまったくありません。私はoopが好きで、rubyはすばらしいoop言語です。私が問題を抱えているのは、ある言語が他の言語よりも優れていると考えるソフトウェア開発者です。その理由だけで私は自作に興味がありません。また、macportsは長年、私にとって問題なく機能しています。
Mike Makuch、2015

回答:


145

MacPortsは進むべき道です。

  1. @ user475443が指摘したように、MacPortsにはさらに多くのパッケージがあります。brew では、必要な式が存在しないため、すぐに閉じ込められてしまいます。

  2. MacPortsはネイティブアプリケーションです:C + TCL。Rubyはまったく必要ありません。Mac OS XにRubyをインストールするには、MacPorts 必要になる場合があるので、MacPortsを使用するだけで十分です。

  3. MacPortsは本当に安定しており、8年間は問題がありませんでした。また、Unixエコシステム全体で問題が発生しました。

  4. PHP開発者であれば、Apacheの最新バージョン(Mac OS Xは2.2を使用)、PHP、および必要なすべての拡張機能をインストールし、1つのコマンドですべてをアップグレードできます。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の両方(多くの異なる拡張機能がインストールされている)がインストールされている場合は、1つのコマンドでそれらを交換できます。すべての相対拡張機能はグループの一部であり、選択したグループ内でアクティブ化されます:php55またはphp56。Homebrewにこの機能があるかどうかはわかりません。

  6. ルビストは、Rubyですべてを書き直すのが好きです。


26
Rubistsは書き直したいのですが、JSでMySQLのバイナリプロトコルを実装しているNodeJSの人たちを見てください!:)
kolypto 2014

37
RubyのインストールにMacPortsは必要ありません— RubyはOS Xに含まれており、brewはシステムRubyを使用します。
Michael Ekstrand 14

5
@Michael Ekstrand OS Xには、Rubyの最新バージョンは含まれていません。
名詞14

89
これには賛成できません。それはあまりにもぎくしゃくしており、その緊張感は情報を損ないます。
OldPeculier 2015

34
省略された「反動」賛成投票に対抗する賛成投票。人間から受け取った情報には、常に自然な偏見(この場合は「くびれ」)があります。このユーザーの視点に感謝します。おそらく答えがウィキペディアのエントリのように読めないためです。
rinogo 2015年

109

Homebrewとmacportsはどちらも同じ問題を解決します。つまり、osxにバンドルされていない一般的なライブラリとユーティリティのインストールです。

通常、これらは開発関連のライブラリであり、これらのツールの最も一般的な使用は、osxで作業する開発者向けです。

どちらもxcodeコマンドラインツールをインストールする必要があり(https://developer.apple.com/から個別にダウンロードできます)、一部の特定のパッケージでは、xcode IDE全体をインストールする必要があります。

xcodeはMacアプリストアからインストールできます。無料でダウンロードできますが、約5 GBなので(正しく覚えていれば)しばらく時間がかかります。

macportsは、BSDのポートユーティリティのosxバージョンです(osxはBSDから派生しているため、これは当然の選択でした)。BSDディストリビューションに慣れている人なら、macportsはくつろいだ気分になるでしょう。

自作とmacportの大きな違いの1つ。私が自作を好む理由は、osxに「ネイティブに」インストールする必要があるものを上書きしないためです。つまり、利用可能なネイティブパッケージがある場合、homebrewはそれを上書きして、将来的に問題を引き起こす代わりに、通知します。また、ユーザースペースにライブラリをインストールします(したがって、インストールに「sudo」を使用する必要はありません)。これは、すべてがアクセス可能なパスにあるため、ライブラリを取り除くときにも役立ちます。

自作もより活発なユーザーコミュニティを楽しんでおり、そのパッケージ(数式と呼ばれる)はかなり頻繁に更新されます。


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に付属しているもので数式を機能させるために、もっと頑張ってほしい

必要に応じて、macosxが提供するバージョンのユーティリティをhomebrewで上書きできます


78
macportsはネイティブOSXパッケージを上書きしません-それは独自のバージョンを提供します-これは私が自家製のものよりもmacportsを好む主な理由です。一部のプロジェクトの更新をye3srsにする
mmmmmm

13
macportsがネイティブOS Xパッケージを上書きすることを示すリファレンスを提供できますか?私の知る限り、すべてのmacportsのインストールは次の場所で行われます/opt/local

27
あなたは少なくとも、MacPortsがネイティブOS Xパッケージを上書きすることを強く示唆しています。あなたが書いたことを書いたとは言っていないふりをしながら「明確にする」のではなく、問題の文を編集する必要があります。
2015年

13
この文は、「自作とmacportsの大きな違いの1つです。自作を好む理由は、osxで「ネイティブ」にインストールする必要があるものを上書きしないためです。」「homebrewとmacportsの大きな違いの1つです。私がhomebrewを好む理由は、homebrewが、Appleがすでに提供しているツールやライブラリの並列コピーを自動的にインストールしないためです。」
bgupta

7
MacPortsはネイティブアプリを上書きしません。「移植されたソフトウェアをプライベートな「サンドボックス」に閉じ込めて、オペレーティングシステムやベンダー提供のソフトウェアと混ざり合わないようにして、破損を防ぎます。」
-MacPorts

23

現在、Macportsには成熟度があるため、Homebrewの数式(〜3.1K)よりも多くのパッケージ(〜18.6 K)があります。しかし、自作はゆっくりと追いついています。

Macportパッケージは1人で管理する傾向があります。

Macportsは複数のバージョンのパッケージを保持でき、それらを有効または無効にしてテストを行うことができます。時々、このリストは破損する可能性があり、手作業でリストを元に戻すには手動で編集する必要がありますが、それほど難しくはありません。

どちらのパッケージマネージャーも定期的に更新するように求めます。これには時間がかかる場合があります。

注:両方のパッケージマネージャーをシステムにインストールできます。どちらか一方ではありません。Brewは文句を言うかもしれませんが、Macportsはそうではありません。

また、pythonまたはrubyパッケージを扱っている場合は、可能な限り仮想環境を使用してください。


1
{{{難しいことではありませんが、このリストは破損する場合があり、手動で編集して元に戻す必要があります。}}}私はこれが起こるのを見たことがありませんが、それが不可能だと言っているわけではありません。どんな状況でしたか?バグを報告しましたか(trac.macports.org)?
LSpice 2014年

{{{両方のパッケージマネージャーは、定期的に更新するように要求します。これには時間がかかる場合があります。}}}これは奇妙な発言のようです。数年の使用の中で、私はMacPorts自体を数回アップグレードすることだけを覚えており、アップデートはかなり迅速です。ポート自体を頻繁に更新する必要があるということですか?まあ、それは可能ですが、それは良いことであり、欠点ではないと思います!また、MacPortsが何もすることを要求しないこと、つまりしつこいことはないことは、おそらく注目に値します。あなたが聞いていることを、旧式のパッケージについて。
LSpice 2014年

18

デフォルトでは、Homebrewはパッケージを/ usr / localにインストールします。Macportコマンドでは、インストールとアップグレードにsudoが必要です(Ubuntuのapt-getと同様)。

詳細:

このサイトはホンブリュー語の使用を提案しています:http ://deephill.com/macports-vs-homebrew/

:このサイトリストのMacPortsを使用することの利点のに対しhttp://arstechnica.com/civis/viewtopic.php?f=19&t=1207907

最近、Ubuntuから切り替えて、homebrewを使うのも好きですが(シンプルで使いやすい!)、sudoの使用に夢中になっている場合は、Macportsの方が適しています。


4
自作は/usr/localsudoを必要とせずに物をインストールすると言っていますか?

1
@NgocPhamそのリファレンスはありますか?

16
@キースそのサイトは間違っています。または、少なくとも、それは大前提を省いています。「Appleはこのディレクトリを残しました。デフォルトでは/ usr / localディレクトリがないため、既存のツールを台無しにすることを心配する必要はありません。」Appleは/usr/localHomebrewに向かった。Appleは/usr/local「基本的なオペレーティングシステムに含まれていない実行可能ファイル、ライブラリなど」を残しました。つまり、Homebrewを使用する前にインストールされたツール/usr/localが、なしでは変更できないように作成されている可能性がありますsudo。彼らはウィキでそれについて議論しません。

2
@NgocPham私のポイントは、Homebrewが/usr/localroot権限なしで使用できるとは思わないということです。/usr新規のOS Xインストールでのデフォルトの権限はroot所有者であり、他のユーザーには書き込み権限がありません。を作成 するためにも/usr/local、Homebrewはrootアクセスを必要とします。(私は何も守ろうとはしていません)

5
@Articuno私は今あなたを手に入れたと思います。それはちょうど文のhomebrewなしのものをインストールすることができsudo、それは自分自身を設定するとき、それがために使用され sudo、何の内部を行うことができるようになりますので、ディレクトリの緩い上の許可をするために/usr/localパスワードをトリガすることなく。「パスワードなしでインストール」の部分が間違っているということですか?私はそうは思わない!パスワードなしでアイテムを取得できることhomebrew 依然として本当です。
Ngoc Pham
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.