Macportsの外部のソースから構築するのは簡単です。macportsを使用したビルドには永遠に時間がかかり、OSが頻繁にフリーズするようです。これは典型的な動作ですか?os x用の優れたパッケージツールのように見えますが、インストールのたびにこの苦痛を経験しなければならない場合は、それなしでやると思います。
4 に答える
Intel Core 2 Duoで実行している場合は、次の場所にあるMacports構成オプションを変更することで、ビルドの速度を2倍にすることができます。
/opt/local/etc/macports/macports.conf
# Number of simultaneous make jobs (commands) to use when building ports
buildmakejobs 2
gccを再構築した後にこれを発見したとき、私は自分自身を蹴っていました;)
このオプションを使用すると、パッケージのビルドに両方のCPUを使用できます。
「OSをフリーズ」?もっと具体的にできますか?どのマシンのどのバージョンのOSXでどのパッケージを構築しようとしていましたか?
私の経験では、MacPortsビルドは通常、サポートされているほとんどすべての構成で正しく動作します。私の場合、10.4を実行している256MBのPismo G3(2000年)から10.5の最近のデュアルコアInteliMacまでの範囲です。ただし、辛抱強く待つ必要があります。特に依存パッケージが多い場合は、時間がかかることがあります。これは、MacPortsやFinkなどのパッケージマネージャーを使用する場合の欠点の1つです。利点は、一般的に、ソースから個別にパッケージをインストールした場合よりも、はるかに制御され、テストされた環境を使用できることです。また、まだ更新していない場合は、必ず最新のMacPortsにアップデートしてください。1.8.0がリリースされたばかりで、ユニバーサルビルドのサポートの改善など、いくつかの重要な改善が加えられています。
MacPortsは、ソースからのみビルドするために使用されていました。これにより、バイナリをフェッチするパッケージシステムと比較した場合、magnitudoの数桁の違いが生じる可能性があります。例として、ビルドに数時間かかるなんとなく大きなパッケージの場合を考えて、これを数十MBのサイズのアーカイブとしてダウンロードする時間と比較します。
MacPortsはAppleのツールを使用してビルドし、MacPortsの外部で得られるのと同じビルド時間にごくわずかなオーバーヘッドを追加するだけで、パッケージが大きいほど、違いは小さくなります。MPの外部でプログラムを構築するときに大きな違いが発生した場合は、問題追跡システムに詳細を記載したチケットを提出する必要があります。
とはいえ、2.0以降、バイナリアーカイブ-cfがサポートされているため、質問はかなり古いと思います。変更ログ-署名されたアーカイブを生成するビルドボットを備えたmacosforgeでサポートされるリポジトリがあり、デフォルトでは、ソースからビルドするのではなく、これらのバイナリアーカイブをフェッチします(-sフラグを使用して強制できます)。現在のユーザーエクスペリエンスは、apt-getなどのバイナリマネージャーに似ており、構成とビルドのオプションを非常に簡単に変更できます。
Macポートが最新のパッケージのソースからビルドされるのを待ってもかまいません。しかし、このすべての処理能力を利用して、ビルドをMacPortsに自動的にアップロードするか、ハッシュ化して「ターボ」オプションを選択できる他のMacPortsユーザーにピアツーピアで提供するオプションをユーザーに提供してみませんか。