web-dev-qa-db-ja.com

yum-パッケージがすでにインストールされているかどうかを確認する

yum install <X>を実行すると、<X>がすでにインストールされている場合、yumは終了ステータス1で終了し、「エラー:何も実行しない」と出力されます。

出力でこの文字列をチェックすること(スクリプトのベースにするのは非常に不安定なことのように思われます)の他に、パッケージが既に存在するかどうかをテストする方法はありますか?明らかに、yumはそのエラーをスローしているため、すでに存在しているかどうかを知っていますが、その知識にアクセスするにはどうすればよいですか?

これに追加するために、一部のパッケージはパッケージ名ではなくURL経由でダウンロードされるため、yum list installedのチェックは機能しません。

7
AmadeusDrZaius

スクリプトではrpm -q packagenameを使用します:

if  rpm -q  vim-enhanced
then
  ...
else
  ...
fi
7
JJoao

あなたが試すことができます:

#yum list installed | grep tmux
tmux.x86_64                      1.9a-5.fc21        @updates                    

または:

#yum list installed tmux
Loaded plugins: langpacks
Installed Packages
tmux.x86_64                                                               1.9a-5.fc21                                                               @updates

grepがない場合、追加の行がいくつか得られますが、両方の出力は、必要に応じて、いくつかのテキストエディターを介してパイプ処理できます。

4
petry