パッケージ生成スクリプト

パッケージ生成スクリプト

パッケージがインストールされていることを確認し、必要に応じてインストールする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

おすすめ記事