
Centos6.6用のカスタムUSBインストーラーを構築する際(簡単ではない)に、もしキックスタートファイルの%postセクションにバッククォートがある
- Anacondaは完了しますが、すぐに終了して画面が空白になります(ビデオ出力なし)。通常はAnacondaが終了したなどのメッセージが表示されて終了します。
- anaconda-ks.log と %post ログ ファイルは両方とも存在しますが、長さがゼロです。
これはうまくいく
%pre --log=/root/postLog.log
echo "This is the post"
ls
%end
これは機能しません
%pre --log=/root/postLog.log
echo "This is the post"
echo `ls`
%end
これも機能しない
%pre --log=/root/postLog.log
echo "This is the post"
echo $(ls)
%end
なぜでしょうか? %post で実行する必要があることがたくさんありますが、コマンド置換/バックティックがサポートされていないと、それがさらに困難になります。
回避策はありますか?
編集: では、なぜバックティックが必要なのでしょうか?
インストーラーはアプライアンス製品用なので、ベース OS、カスタム OS rpm、および製品 rpm をインストールする必要があります。
したがって、%post セクションでは、次のようなパターンが非常に一般的です。
cd $ApplicationPackageDir
RPMLIST=`ls *.rpm`
RPMCOUNT=`ls *.rpm | /usr/bin/wc -l`
for theRpm in $RPMLIST
do
echo /bin/rpm --quiet --upgrade --nodeps --force $theRpm
done
一般的な何かを行うための同様のパターン何でもファイルは特定のディレクトリに存在します。
Anaconda がファイル内にバックティックがあるとエラーを起こす場合、全体のコンセプトは機能しません。
さらに、バックティックは有効な bash 演算子ですが、キックスタートでは問題があるようです。
bashのバックティックは想定キックスタートで働くには?
編集 II:例に$(ls)を追加しました