1 つのリポジトリからインストールされたパッケージを削除し、CentOS から再インストールしますか?

1 つのリポジトリからインストールされたパッケージを削除し、CentOS から再インストールしますか?

CentOS アップストリーム パッケージを上書きした RPMfusion のパッケージが 62 個ありますが、今度は元の CentOS パッケージに戻したいと思います。

私が思いつく唯一のアイデアは

BAD_PACKAGES="name1 name2 ..."
echo $BAD_PACKAGES |xargs rpm -e --nodeps
echo $BAD_PACKAGES |xargs yum install

しかし、そのプロセス中にシステムは壊れた状態のままになります。

質問

これらのパッケージを削除して CentOS のリポジトリから再インストールする最も安全な方法は何ですか?

答え1

あなたはできるアップグレード--oldpackageのオプションを使用して古いバージョンに戻すrpm:

rpm -Uvh --oldpackage package-a.1.23.rpm

これは よりもはるかに安全ですrpm -e --nodeps。 1 つのコマンドで複数のパッケージをアップグレードできるため、依存関係が壊れることはありません。

答え2

この方法はうまくいきましたが、プロセス中に多数の重要なサービスが中断されたため、恐ろしい状況でした。

rpm -qa --queryformat "%{NAME}.%{ARCH} %-35{DISTRIBUTION}\n" | grep -i "rpm-fusion" | awk '{print $1}' > /root/list_arch
cat /root/list_arch | xargs rpm -e --nodeps 
cat /root/list_arch | xargs yum -y install

list_archrpm-fusion のパッケージ名は元の CentOS パッケージ名と少し異なっていたため、少し編集する必要がありました。

yumrpm-fusion パッケージをインストールしたコマンドの出力があったので、それが大きな安心感になりました。

関連情報