Linux イメージ (Oracle Linux、5.8) のインストールに使用する起動可能な ISO を構築しています。これは、アナコンダとキックスタート ファイルを使用して、ロードするパッケージを選択しています。これらのパッケージの一部は、%post セクションの依存関係の問題で失敗しています。
たとえば、これは、インストールの完了後に /root/install.log に表示されます。
Installing thirdparty-tools-1.00-09.noarch
/var/tmp/rpm-tmp.97891: line 1: ln: command not found
/var/tmp/rpm-tmp.97891: line 2: ln: command not found
/var/tmp/rpm-tmp.97891: line 3: ln: command not found
/var/tmp/rpm-tmp.97891: line 4: ln: command not found
error: %post(thirdparty-tools-1.00-09.noarch) scriptlet failed, exit status 127
RPM を編集して依存関係を追加せずに、パッケージの順序を制御/オーバーライドできるかどうかを調べようとしています。私は anaconda / kickstart のドキュメント ( https://fedoraproject.org/wiki/Anaconda/Kickstart#Chapter_3._Package_Selection ) を調べ、他の場所を広範囲に検索したので、答えは実際には「いいえ、できます」であると思いますこれをしないでください。これは残念です。
問題は、私の管理下になく、デジタル署名されたさまざまなサードパーティのRPM を含めようとしていることです。これらには、%post セクションでの処理が含まれます。この処理には、「ln」、「touch」などの標準的な Linux コマンドが必要です。これらは、coreutils パッケージ内で提供されます。サードパーティのパッケージには現在、coreutils パッケージへの依存関係が含まれていませんが、実際にはそうすべきであることは明らかです。Anaconda は、独自の半順序付けアルゴリズムを使用して、これらのパッケージをインストールする順序を選択し、サードパーティ パッケージはcoreutils パッケージの前にインストールされます。明らかに、適切な解決策は、これらの RPM をサードパーティに修正してもらうことです。ただし、これには時間がかかりすぎる可能性があります。
追加の依存関係を追加できる、キックスタート ファイルの非表示/文書化されていないオプションである可能性があることを期待していました。理想的には、次のようなものを %packages セクションに追加できるようにしたいと考えています:
%packages
@admin-tools
@base
@core
@system-tools
thirdparty-tools
# We would like to add some magic command to indicate a missing dependency
thirdparty-tools dependson coreutils
それで、私の質問は次のとおりです。RPMを編集して依存関係を追加せずに、パッケージの順序を制御またはオーバーライドすることは可能ですか?
助けてくれてありがとう。