インストールを進める前に、特定のライブラリがコンピュータにインストールされているかどうかを検出したいのですが、正しく動作させることができません。
次のシェルスクリプトがあります。
#!/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-libs をインストールしてコンソールで手動で実行しecho $?
、出力を確認するために実行すると、すべてが正しくインストールされているため、終了コード 0 が返されます。
このスクリプトは、インストールの起動段階で、権限の要求ステップの直後に実行するように設定し、終了と出力ストリームを待機するように設定しました。インストーラーを停止できるようにするために、失敗戦略を「失敗時に再試行するか終了するかをユーザーとして」に設定しています。
問題は、パッケージがインストールされているにもかかわらず、スクリプトがまだ失敗し、インストーラーが続行するか終了するかを尋ねてくることです。
この問題を解決する方法がわからないので、特定の前提条件が満たされていない場合はインストーラーを停止できます。または、これを達成するためのより良い方法はありますか?