yum install <X>
を実行すると、<X>
がすでにインストールされている場合、yum
は終了ステータス1で終了し、「エラー:何も実行しない」と出力されます。
出力でこの文字列をチェックすること(スクリプトのベースにするのは非常に不安定なことのように思われます)の他に、パッケージが既に存在するかどうかをテストする方法はありますか?明らかに、yumはそのエラーをスローしているため、すでに存在しているかどうかを知っていますが、その知識にアクセスするにはどうすればよいですか?
これに追加するために、一部のパッケージはパッケージ名ではなくURL経由でダウンロードされるため、yum list installed
のチェックは機能しません。
スクリプトではrpm -q packagename
を使用します:
if rpm -q vim-enhanced
then
...
else
...
fi
あなたが試すことができます:
#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
がない場合、追加の行がいくつか得られますが、両方の出力は、必要に応じて、いくつかのテキストエディターを介してパイプ処理できます。