
在為 Centos6.6 建立自訂 USB 安裝程式時(並不容易)我發現如果kickstart 檔案的 %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 中做很多事情,而沒有命令替換/反勾支援將使這變得更加困難。
有什麼解決辦法嗎?
編輯:為什麼我需要反引號?
安裝程序適用於設備產品,因此需要安裝基本作業系統、自訂作業系統 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 運算子-kickstart 似乎在使用它時遇到了麻煩。
bash 是否有反引號應該在kickstart 工作?
編輯二:在範例中新增了 $(ls)