パッケージがインストールされていることを確認し、必要に応じてインストールするbash関数を作成しようとしています。今は何があっても常にインストールされます。
install() {
echo "checking if $1 is already installed"
if [[ ! $(equery -q l $1 | grep -q "$1") ]]
then
emerge -v $1
else
echo "$1 is already installed"
fi
}
install "oracle-jdk-bin"
- の出力は
equery -q l $1
次のとおりです。dev-java/oracle-jdk-bin-1.8.0.45
- grepはoracle-jdk-binを見つけて1を返す必要があります。
ベストアンサー1
Emergeの「noreplace」オプションを使うのはどうですか?
説明:「コマンドラインで指定されたインストール済みパッケージをスキップします。このオプションがないと、コマンドラインで指定されたパッケージ原子またはパッケージセットがすでにインストールされていても、Portageはパッケージを再びマージします。デフォルトでは、Portageは依存関係を再マージしません。いいえ。このオプションを使用すると、パッケージを再構築せずにワールドファイルを更新できます。https://dev.gentoo.org/~zmedico/portage/doc/man/emerge.1.html