次のrpmsをインストールしようとしています(実際にはすでにインストールされています)。
rpm -qa | grep sshpass
sshpass-1.06-2.el7.x86_64
yum install sshpass-1.06-1.el7.x86_64.rpm
Loaded plugins: langpacks
Examining sshpass-1.06-1.el7.x86_64.rpm: sshpass-1.06-1.el7.x86_64
sshpass-1.06-1.el7.x86_64.rpm: does not update installed package.
Error: Nothing to do
echo $?
1
しかしそれは戻ってくるexit code 1
yumがインストールされているrpmを無視してエラーを返さないのはなぜですか?
他の例
rpm -qa | grep figlet
figlet-2.2.5-9.el7.x86_64
yum install figlet-2.2.5-9.el7.x86_64.rpm
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
configuration
Examining figlet-2.2.5-9.el7.x86_64.rpm: figlet-2.2.5-9.el7.x86_64
figlet-2.2.5-9.el7.x86_64.rpm: does not update installed package.
Error: Nothing to do
echo $?
1
注 - 私たちも試してくださいyum clean all
。
そして削除されました/var/cache/yum/*
しかし、役に立たなかった
答え1
私の印象はあなたがyumの基本的な動作について文句を言っているということです。
yumは、パッケージのインストール/削除またはアップグレードのためのパッケージマネージャとして機能します。
存在する場合、Error: Nothing to do
パッケージのインストール/削除またはアップグレード操作は実際に失敗するため、戻りコード== 1です。
パッケージがインストールされていることを確認するには、以下を試してください。
rpm -qa | grep wget || yum -y install wget
これはあなたに$? == 0標準シナリオでは。
答え2
システムにすでにインストールされている以前のバージョン、または同じバージョンのパッケージをインストールしようとしています。yum
これは実行前に確認されるため、これらのパッケージで使用しようとするとメッセージが表示されます。それ以外の場合は、yum
更新中にどうなりますか?アップデートが表示され、リポジトリのいずれかで利用できる場合は、両方のアップデートを最新バージョンにアップグレードし、システムに2つの同じパッケージがありますか?
以前のバージョンのソフトウェアが必要なyum
場合rpm
。
答え3
パッケージのインストール中に同様の問題が発生しました。問題は、同じバージョンのパッケージがすでに存在することです。
私に役立つ解決策:パッケージ名がpackage-abcであるとしましょう。
sudo yum remove package-abc -y
sudo yum install package-abc -y
これがあなたにも役立つことを願っています!乾杯!