web-dev-qa-db-ja.com

インストールされているパッケージを確認し、見つからない場合はインストールする

インストールされているパッケージを確認する必要があります。インストールされていない場合はインストールしてください。

RHEL、CentOS、Fedoraの例:

rpm -qa | grep glibc-static
glibc-static-2.12-1.80.el6_3.5.i686

BASHでのチェック方法を教えてください。

私は何かをしますか?

if [ "$(rpm -qa | grep glibc-static)" != "" ] ; then

また、他のディストリビューションには何を使用する必要がありますか? apt-get?

19

次のコードを試してください:

if ! rpm -qa | grep -qw glibc-static; then
    yum install glibc-static
fi

以下:

rpm -qa | grep -qw glibc-static || yum install glibc-static

Debianのいいね:

dpkg -l | grep -qw package || apt-get install package

Archlinuxの場合:

pacman -Qq | grep -qw package || pacman -S package
47
Gilles Quenot

@GillesQuenotと@Kidbulraの回答に基づいて、以下に複数のパッケージをループし、見つからない場合はインストールする方法の例を示します。

packageList="git gcc python-devel"

for packageName in $packageList; do
  rpm --quiet --query $packageName || Sudo yum install -y $packageName
done
1
Noam Manos
if [ $(yum list installed | cut -f1 -d" " | grep --extended '^full name of package being checked$' | wc -l) -eq 1 ]; then
  echo "installed";
else
  echo "missing"
fi

エラー状態に依存せずにインストール済み/欠落を返すため、これを使用します(これにより、エラーに対して「許容範囲がない」アプローチをとるスクリプトで問題が発生する可能性があります

set -o errexit

例えば)

0
Pancho

ダウンロードしたRPMに対してこれを行う場合。あなたはそれを行うことができます。

rpm -Uvh package-name-version-tag.rpm
0
diyoda_