yum+はインストールされているパッケージを更新しません

yum+はインストールされているパッケージを更新しません

次の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

これがあなたにも役立つことを願っています!乾杯!

関連情報