インストールされているパッケージを確認する必要があります。インストールされていない場合はインストールしてください。
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?
次のコードを試してください:
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
@GillesQuenotと@Kidbulraの回答に基づいて、以下に複数のパッケージをループし、見つからない場合はインストールする方法の例を示します。
packageList="git gcc python-devel"
for packageName in $packageList; do
rpm --quiet --query $packageName || Sudo yum install -y $packageName
done
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
例えば)
ダウンロードしたRPMに対してこれを行う場合。あなたはそれを行うことができます。
rpm -Uvh package-name-version-tag.rpm