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_arch
rpm-fusion のパッケージ名は元の CentOS パッケージ名と少し異なっていたため、少し編集する必要がありました。
yum
rpm-fusion パッケージをインストールしたコマンドの出力があったので、それが大きな安心感になりました。