yumの除去はすごいものではありません

yumの除去はすごいものではありません

一部のCentos VMでは、一部のMySQLパッケージを削除し(yum経由)、MariaDBをインストールする必要があります(rpm経由)。すべてシェルスクリプトに含まれています。私はyumを使って以下を削除します。

yum remove -y mysql-community-client  
yum remove -y mysql-community-release  
yum remove -y mysql-community-libs  
yum remove -y mysql-community-common  

一部のVMでは、クライアントパッケージがインストールされていない可能性があるため、yumが表示されます。

No Match for argument: mysql-community-client  
Determining fastest mirrors  
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=6&arch=x86_64&repo=os&infra=stock error was  
14: PYCURL ERROR 7 - "couldn't connect to host"  

ファイアウォールのようなものなので、接続が失敗したことがわかります。

私の質問は:
欠落しているパケットを無視するように指示できますか?
それとも、少なくともNo Match for argumentミラーなどに接続せずに単に失敗しますか?

質問のタイトルは、次のyum remove -y mysql-community-client内容がyum remove -y mysql-community-clientミラーに接続されていることを示していますが、「パッケージが削除されました」の後に「パッケージが削除されました」と言いたいと思います。

質問を言い換えると、問題はRPMにはありません(質問の完全性のためにこれに言及するだけです)、問題はyumにあります。yum remove XXがインストールされている場合は削除されます。インストールされていない場合は、避けたいミラーを検索します。 yumは「Xがインストールされていません」と言って終了したいです。

答え1

私たちはyumがどのように行動し、どのように行動するべきかについて長い間議論することができますが、簡単に言うと次のようになります。

yum --cacheonly remove -y mysql-community-client

あなたが望むものかもしれません。

答え2

mysql-community私が正しく理解したら、ネットワークアクセスをブロックし、プラグインを無効にし、現在インストールされているパッケージのみを削除したいと思います。だから何?

yum --disablerepo="*" --noplugins remove "*mysql-community*" -y

globと一致するインストール済みパッケージのみが一致します"*mysql-community*"。一般的に私は個人的-yにフラグを使用しませんremove

インストールされている特定のパッケージのみを選択的に削除するには、次の手順を実行します。トーマスの答えあなたに必ず必要なもの。

答え3

yumリポジトリからパッケージをインストールする代わりにを使用すると、参照するrpm関連リポジトリがないため、yumはrpmが削除された時点を確認する方法を知りません。そのため、その一部(MariaDB)には等価性がありません。

スクリプトが等しくなるようにするには、指定されたrpm -qパッケージを使用してパッケージがインストールされていることを確認し、結果を使用してyumを実行するかどうかを判断する方が良い方法です。

rpmパッケージのインストールに使用するとすぐにはわかりませんが、yumシステムの更新を要求すると、RPMデータベースがyumの外部にインストールされているという警告が表示されます。したがって、yum installRPMセットからMariaDBパッケージをインストールする必要があります。

関連情報