自作と樽のみの依存関係を理解する


120

私は最近自作を使い始めましたが、システムに何かを醸造したときに何が起こるかについて少し混乱していますが、醸造された依存関係はkegのみであり、つまりでリンクされてい/usr/localます。

たとえば、vips(画像処理ライブラリ)をインストールしています。その多くの依存関係の1つはpixmanです。Pixmanは、Mac OSX(この場合はSnow Leopard)が既に同梱されている(またはそのバージョン)ため、樽専用としてインストールされます。

これは、vipsがpixmanのシステムバージョンを使用することを意味しますか?もしそうなら、依存バージョンではなくシステムバージョンの使用に関連する潜在的なバージョン管理の問題はありませんか(それらが異なる場合)。

回答:


197

「樽のみ」の手段、それがインストールされていることにするソフトウェアの/usr/local/Cellarが、ないような場所にリンクされ/usr/local/bin/usr/local/lib中のファイルを使用するための特定の命令を使用してコンパイルする必要があり、それに依存する他のソフトウェアを意味など、/usr/local/Cellar。これはbrew install、数式が樽のみの依存関係を指定するときに自動的に行われます。

樽のみの依存関係を指定する数式は、同等のシステムライブラリが使用されていないことを確認します。vipsのインストールは、の特定のバージョンのpixmanにリンクされているため、インストールするpixman /usr/local/Cellar/pixman/<version>のシステムバージョンや他のHomebrewバージョンのpixmanの影響を受けません。


9
いい説明だ!otool -L /usr/local/Cellar/vips/???/lib/*.dylibリンクして、他のどのライブラリに対してリンクしているのかを確認することができます。
サミュエルジョン

私はhomebrewによってopenssl 1.0.2sをインストールしていて、私のMac OSにはLibreSSL 2.6.5があります。そうするとopenssl version、常にos(LibreSSL)のものが表示されますが、Pythonをインタラクティブモードで実行すると、実際にはopensslを使用しています。pythonが正しいopensslを取得する方法を理解するのを手伝ってくれませんか?@echristopherson
アレックス

1
@Alex同様のechristophersonは言った:それは、特定のバージョンにリンクされているopenssl(インストール時)。pythonブリューフォーミュラをご覧ください。そこには、のパス(BREWの接頭辞)ことが確認できopenssl@1.1たような式が使用されているarg順番に使用されています、configure
アインジョン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.