最近Macに切り替えたので、MacPortsのことは初めてです。Macでいくつかのアプリケーションを開発することを考えていたので、必要なすべての通常のgnuおよびオープンソースツールが必要でした。しかし、私は少し混乱しました。私はmacportsでgitをインストールしていましたが、すでにマシンにあるPerlのような多くのパッケージがインストールされていることに気づきました。だから私は競合がないだろうと思っていました、そしてどのバージョンが使われているのかをどうやって知るのですか?macportsまたはappleのどちらですか?
3 に答える
MacPorts は、すべてのポートを/opt/local
(または構成した任意のプレフィックスに) インストールしますが、それ/opt/local
はデフォルトです。MacPorts のインストールが標準化され、競合を回避するために、Perl、Python などの独自のコピーがインストールされます (Perl や Python などの一部のプログラムの Apple 提供バージョンや、一部のライブラリは、多くの場合、最新バージョンのそれらのツール)。
MacPorts をインストールすると、変数の前に自動的に追加/opt/local/bin
されます$PATH
(シェル構成ファイルを編集することで変更できます)。そのためperl
、 などを呼び出すと、MacPorts のバージョンが取得されます。ただし、Apple が提供するバージョンはそのままで変更されず、それらのバージョンに依存する他のプログラムにも影響はありません。
MacPorts はすべてのプログラムを .xml ファイル内の完全に別のディレクトリ階層にインストールするため、競合が発生することはありません/opt/local/
。
複数のバージョンのソフトウェアがインストールされている場合 (デフォルトの OS X Perl と MacPorts の Perl など)、$PATH
環境変数のディレクトリの順序によって異なります。bin
MacPorts は通常、パスの前の方にあるディレクトリを使用してセットアップするためperl
、コマンド ラインでコマンドを実行すると、OS X Perl ではなく MacPorts Perl が呼び出されます。
MacPortsは、独自の依存関係を/opt/local
ツリーにインストールします(MacPortsをビルドするときにこのデフォルトを変更できます)。これは、パッケージャーがテスト対象の既知の数量を持っているためです。場合によっては、システムにインストールされたバージョンを使用できるようにする特定の依存関係のシステムパッケージがありますが、それは実際には非常にまれです。システムバージョンとMacPortバージョンは、PATH
(実行可能ファイルの場合)またはダイナミックライブラリのリンカーパスのどちらが先に来るかに従って選択されます。標準の開発ツールのオプションを使用して、リンクする適切なライブラリを選択してください。問題はありません。