一部の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 X
Xがインストールされている場合は削除されます。インストールされていない場合は、避けたいミラーを検索します。 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 install
RPMセットからMariaDBパッケージをインストールする必要があります。