web-dev-qa-db-ja.com

ビルド依存関係と使用依存関係をどのように区別しますか?

パッケージの一部の依存関係はコンパイルにのみ必要ですが、他の依存関係は実際の使用に必要です。例として、私はnet-misc/unisonがコンパイルのためだけにdev-lang/ocamlを必要とし、そのsys-libs/glibc依存関係が(また)使用のためであることを知っています。しかし、どうすれば実際に違いを理解できるでしょうか。

1
Tobias Kienzler

Gentoo is少し特別です... ;-)

ソースによって異なります。プログラムのソースコードの一部を処理/生成するために特別なツール(awk、sed、flex、...)が必要な場合は、コンパイル/ビルドするためにこれらのツールが必要になります...ただし、一度プログラムが構築されます-すなわち。実行可能ファイルがいくつかあります。これらのツールは、プログラムを使用するために必要ありません。

パーツが通常とは異なる言語で書かれているプログラムについても同じことが言えます。プログラムの一部がOcaml、Ada、またはPascalで記述されている場合。これらの言語に適したコンパイラがインストールされている必要があります。それらがオブジェクトファイルにコンパイルされ、完成した実行可能ファイルにリンクされると、共有ライブラリのみが必要になります-静的ライブラリで構築された場合を除きます。静的ライブラリで構築された場合は、ライブラリも必要ありません。

ドキュメントの一部でさえ、追加のツールやプログラムをインストールする必要がある場合があります。たとえば、LaTeXで記述されているため、LaTeXを作成する必要があります。結局のところ、単純なマンページでさえ、使用されるマークアップ言語を解釈するためにTROFFが必要です。

Gentoo以外のディストリビューション(すべてを自分でビルドしないディストリビューション)の場合、パッケージは事前にビルドされているため、ビルド中に必要なツールについて心配する必要はありません。

2
Baard Kopperud