ソースからコンパイル:設定スクリプト「build」にはどのようなオプションがありますか?

ソースからコンパイル:設定スクリプト「build」にはどのようなオプションがありますか?

次の行を実行すると:

./configure --build=x86_64-redhat-linux-gnu --host=x86_64-redhat-linux-gnu {*shortened*} \
--with-imap-ssl=/usr/include/openssl/ --enable-ftp --enable-mbstring --enable-zip

「x86_64-redhat-linux-gnu」の説明的な意味を理解していますが、質問はありますか?

1)すべての選択肢のリストはありますか?すべての設定スクリプトまたはインターネットから。

2)答えをより具体的に、またはより一般的にすることは結果に大きな影響を与えますか?

ありがとうございます。

ベストアンサー1

スクリプト--build-hostオプションはconfigure標準構成オプションであり、クロスビルド(たとえば、あるシステムでパッケージをビルドして別のシステムで実行)を実行しない限り、これを指定する必要はほとんどありません。これらのオプションの値は形式のために「トリプル」と呼ばれますcpu-vendor-os。 (時々あなたの場合のようにos実際にはありますがkernel-os、まだトリプルと呼ばれます。)

基本設定スクリプトはホストトリプルを推論する能力が優れているため、結果が間違っているという非常に良い証拠がない限り、そうするようにしておく必要があります。これを行うスクリプトは、ビルドパッケージのどこか(おそらくサブディレクトリ)config.guessにあります。build-auxクロスビルドを実行していてトリプルを理解する必要がある場合は、host最初に試す必要があるのはconfig-guessホストシステムで実行することです。

--hostおよび に与えられた(または推測された)値は、値を正規化するという--build別のスクリプトを介して渡されます。config.sub(autoconfドキュメントによれば、config.subホストトリプルがなければビルドはそれを気にしないと仮定config.subすることができます。)特定のパッケージの開発者は、ビルドの特定の要件に合わせてスクリプトをカスタマイズでき、さまざまな方法があります。バージョンの標準スクリプトconfig.subなので、あるパッケージがconfig.sub別のパッケージの上で実行されるか、同じパッケージの別のバージョンで実行されるとは想定しないでください。

上記のすべてにもかかわらず、自動構成パッケージは、正しい基本ファイルの場所を提供するためにデフォルトのファイルシステムレイアウトを識別するだけでなく、実際にホストオペレーティングシステムとベンダーの名前を知る必要はありません。

読んでみると、config.sub認識されるオプションの範囲に関するアイデアを得ることができますが、値をどのように使用するか、値が使用されるかを把握するのはそれほど簡単ではありません。最初のフィールド(cpu)が最もよく使用されます。

次のように入力すると、すべてのオプションのリストを取得できます。

./configure --help

またはより良い、

./configure --help | less

常にオプションがあるからです。

--build標準オプション(および上記のよう--host--targetファイルの場所をオーバーライドするオプション)に加えて、各構成スクリプトで許可される特定のオプションも異なります。パッケージのバージョンによって変わる傾向があるため、外部文書に依存するのではなく、常に構成スクリプト自体を確認する必要があります。

残念ながら、構成スクリプトのヘルプコンテンツはメンテナンスをパッケージ開発者に依存しているため、必ずしも100%完全ではありません。場合によっては、例外または開発者専用のオプションは出力の一部ではありませんが、./configure --helpこれは通常、通常のインストールでそのオプションを使用しないことを示します。

おすすめ記事