web-dev-qa-db-ja.com

HomebrewとMacportsを強制的に共存させますか?

私は何年も使用しているMacOSXシステムを持っており、この間、Macportsを介してかなりの数のパッケージをインストールしました。

Homebrewを試してみたいのですが、ここや他の場所で読んだことから、HomebrewとMacportsのデフォルトのインストールは簡単に共存できないことは明らかです。

私の毎日のMacOSX作業の多くは、Macportsにインストールされたさまざまなユーティリティの使用を伴うため、Macportsをアンインストールすることは実行可能なオプションではありません。さらに、私自身が開発したユーティリティの多くは、現在Macportsと相互依存しています。そして最後に、私が日常的に使用する多くの実行可能ファイルと共有ライブラリが/ usr/localの下にインストールされ、そのディレクトリツリーをクリアすると、システムがすぐに使用できなくなります。

だから私の質問はこれです:Macportsと共存できるHomebrewをインストールする別の方法を誰かが思いついたのですか?具体的には、Homebrewに/ usr/localの代わりに/ usr/local/homebrewなどのディレクトリツリーを利用させる方法を誰かが理解しましたか?

ドキュメントへの提案やポインタを事前に感謝します。

10
HippoMan

Homebrewに独自のディレクトリを使用するように指示し、それをパスに追加できます。同じ目的ではありませんが、インストールガイドからのこの抜粋は次のように述べています。

複数のインストール

Tarballを抽出する場所にHomebrewインストールを作成します。どちらのbrewコマンドが呼び出されても、パッケージがインストールされます。必要に応じてこれを使用できます。/usr/localのライブラリのシステムセットと〜/ homebrewで開発するための微調整された式

ソース: https://github.com/mxcl/homebrew/wiki/installation

2
Karolos

それらを強制的に共存させる方法は、MacPortsをデフォルトでは表示しないようにすることですが、MacPortsプログラムを呼び出すときに表示することです。つまり、MacPortsプログラムを次のようなスクリプトでラップします。

if [ "$#" -le 0 ]; then
  echo "Usage: $0 command [arg1, arg2, ...]" >&2
  exit 1
fi
if [[ -z $MACPORTS_PREFIX ]]; then
  MACPORTS_PREFIX='/opt/local'
fi
export PATH="$MACPORTS_PREFIX/bin:$MACPORTS_PREFIX/sbin:$PATH"
export DYLD_LIBRARY_PATH="$MACPORTS_PREFIX/lib:$DYLD_LIBRARY_PATH"
export CPATH="$MACPORTS_PREFIX/include:$CPATH"
command=$1
shift
exec $command $* 

このスクリプトにmacports.shという名前を付けると、macports.sh macports_binでラッピングを実行できます。たとえばmacports.sh portportラップされて実行されます。

便宜上、macports.sh somethingをコマンド自体と同じ名前のスクリプトに入れて、~/bin~/.local/binなどのHOMEディレクトリに置くことができます。

私が書いた ブログ投稿 これについて1ヶ月前。詳細を確認する必要がある場合は、それを読むことができます。

1
xuhdev