在繼續安裝之前,我想檢測計算機上是否安裝了某些庫,但無法正常運行。在啓動時運行腳本的不同結果
我有以下shell腳本:
#!/bin/bash
verify_distro(){
CHECK_IF_PACKAGE=`dpkg -s ia32-libs`
result=`echo $?`
echo ${result}
if [ ${result} == 0 ]; then
echo "ia32-libs installed"
return 0
else
echo "not installed"
return 1
fi
}
verify_distro
如果我安裝了IA32-庫,並用手在控制檯中運行它,然後做一個echo $?
查看輸出我得到的退出代碼0應有盡有已正確安裝。
我已將此腳本設置爲在安裝的啓動階段運行,即在請求特權步驟之後運行,並設置爲等待終止和輸出流。爲了讓我能夠停止安裝程序,我還將失敗策略設置爲「作爲用戶是否重試或退出失敗」。
問題是,儘管安裝了軟件包,腳本仍然失敗,安裝程序詢問是繼續還是退出。
我不知道如何解決這個問題,所以我可以停止安裝程序,如果某些先決條件不滿足。或者有沒有更好的方法來實現這一目標?
無論您是手動還是從安裝程序運行,返回值是否存在差異?您是否檢查過.install4/installation.log中記錄的返回值?此外,您可能會將「運行可執行文件」操作的輸出重定向到日誌文件,以檢查腳本是否正確執行。 – 2013-03-03 11:16:16
@IngoKegel,問題源於腳本無法在啓動階段運行,在它被複制到安裝的目錄之前。 如果我在註冊添加/刪除項目階段之後(或者在安裝文件階段之後的任何地方)運行腳本,它將正確運行。 在佈局文件被複制之前,是否有任何方法可以讓腳本運行**?例如,我希望在啓動安裝程序時將其作爲第一步運行,以便用戶立即得到缺少依賴關係的警告,而不是在安裝結束時發出警告。 – 2013-03-04 14:36:22
行了,請看我的回答 – 2013-03-04 14:54:39