なぜソースから rpm をコンパイルするのですか?

なぜソースから rpm をコンパイルするのですか?

私が知っていること:src.rpmには通常、アプリ/ライブラリ/パッケージの何らかのtarまたは圧縮されたソースコードが含まれています。パッケージが機能しない場合は、ソースからコンパイルすることを推奨されることがあります。

わからないこと: なぜソースから再コンパイルするのでしょうか? ソースからコンパイルするには何が必要ですか? gcc ですか? xlc ですか?

知りたいこと: 仮に、src rpm がある場合、その rpm を Fedora で実行するようにコンパイルし、同じ src rpm を AIX に持って行き、AIX で実行するようにコンパイルすることはできますか?

答え1

.src.rpmにはソースコードが含まれていますそしてさまざまなファイルと実行可能ファイルをコピー(インストール)する場所に関する情報。

したがって、Fedora と AIX の両方でソースをコンパイルできるはずです。ただし、これは「rpm をインストール」できるという意味ではありません。インストールは、、などのさまざまなシステム フォルダーにファイルをコピーすることから構成されます/usr/etcオペレーティング システムによって、特定のファイルの場所が異なることが想定されるため、Fedora の .rpm が AIX にインストールできるという保証はありません。実際、その可能性は極めて低いです。

コンパイルに関しては、特定のハードウェアに最適化されたバイナリを作成するために、または特定のライブラリの場所などの特定のコンパイル フラグを有効にするために、ソースからコンパイルする必要があるかもしれません。一般に、ソースからコンパイルする理由がわからない場合は、おそらくコンパイルしないほうがよいでしょう。

コンパイルする場合は、適切なコンパイラが必要です。これは、C または C++ で書かれたソフトウェア用、Java 用などですgccxlcどれjavacを使用するかは、インストールするソフトウェアと個人の好みによって異なります。ソフトウェアは特定のコンパイラを念頭に置いて (コンパイル時に特定のオプションを使用して) 書かれている場合があり、別のコンパイラでコンパイルしようとするとエラーが発生します。

最後に、ほとんどの *nix ソース tarball には Makefile と configure スクリプトが含まれています。これらを使用するには、必要なツールが必要です。configure スクリプトは通常、単純な BLASH スクリプトなので、BASH がインストールされていれば問題ありません。Makefile を使用するには、 コマンドが必要ですmake。また、その他の基本的なツール (autoconf や automake など) も必要です。RH ベースのディストリビューションに長年取り組んでいませんが、記憶が正しければ、次のコマンドで必要なものがすべてインストールされるはずです。

yum groupinstall "Development Tools" 

関連情報