今朝(Amazon Linuxを実行しているt2)本番Webサーバーを更新しようとしましたが、RAM(php-fpmにすべてありました)が不足したため失敗しました)。php-fpmを停止して解放しましたRAMをいくらかアップしますが、yumの更新は完了しません。サーバーは正常に実行されていますが、この問題をクリーンアップしたいと思います。
# yum update
Resolving Dependencies
--> Running transaction check
---> Package glibc-headers.x86_64 0:2.17-106.168.amzn1 will be updated
--> Processing Dependency: glibc-headers = 2.17-106.168.amzn1 for package: glibc-devel-2.17-106.168.amzn1.x86_64
---> Package glibc-headers.x86_64 0:2.17-157.169.amzn1 will be an update
--> Finished Dependency Resolution
Error: Package: glibc-devel-2.17-106.168.amzn1.x86_64 (@amzn-main)
Requires: glibc-headers = 2.17-106.168.amzn1
Removing: glibc-headers-2.17-106.168.amzn1.x86_64 (@amzn-main)
glibc-headers = 2.17-106.168.amzn1
Updated By: glibc-headers-2.17-157.169.amzn1.x86_64 (amzn-updates)
glibc-headers = 2.17-157.169.amzn1
You could try using --skip-broken to work around the problem
** Found 6 pre-existing rpmdb problem(s), 'yum check' output follows:
glibc-devel-2.17-106.168.amzn1.x86_64 has missing requires of glibc(x86-64) = ('0', '2.17', '106.168.amzn1')
glibc-devel-2.17-157.169.amzn1.x86_64 is a duplicate with glibc-devel-2.17-106.168.amzn1.x86_64
glibc-devel-2.17-157.169.amzn1.x86_64 has missing requires of glibc-headers = ('0', '2.17', '157.169.amzn1')
glibc-headers-2.17-106.168.amzn1.x86_64 has missing requires of glibc(x86-64) = ('0', '2.17', '106.168.amzn1')
Subversion-1.9.4-2.55.amzn1.x86_64 has missing requires of Subversion-libs(x86-64) = ('0', '1.9.4', '2.55.amzn1')
Subversion-1.9.5-1.56.amzn1.x86_64 is a duplicate with Subversion-1.9.4-2.55.amzn1.x86_64
インストールされているglibcパッケージは次のとおりです
# rpm -qa | grep glibc
glibc-devel-2.17-157.169.amzn1.x86_64
glibc-devel-2.17-106.168.amzn1.x86_64
glibc-common-2.17-157.169.amzn1.x86_64
glibc-headers-2.17-106.168.amzn1.x86_64
glibc-2.17-157.169.amzn1.x86_64
1つの問題は、2つの異なるバージョンのglibc-develがインストールされていることです。また、glibcの一部はバージョン106にあり、他の部分はバージョン157にあるようです。
サーバーを再起動しましたが、予想どおりに違いはありませんでしたが、一見の価値がありました。私は以下を実行しましたが、効果はありませんでした
yum-complete-transaction
yum-complete-transaction --cleanup-only
yum clean all
過去に私は同様の問題を抱えていましたが、それほど重要ではないパッケージでした。それらをすべて削除して、再度インストールします。多くのことがglibcに依存しているため、これがglibcで可能であるとは思いません。
Centosフォーラムを調べたところ、一部のパッケージを 一部のパッケージをダウングレード にダウングレードするオプションがあるようですが、より良いオプションがあるかどうかはわかりません。これは私の実稼働サーバーなので、これを試す前にアドバイスをいただければ幸いです。これが適切なアプローチである場合、どのパッケージをダウングレードする必要がありますか?ダウングレードした後、定期的にyumを更新するにはどうすればよいですか?
私は定期的なバックアップを持っており、必要に応じて最近のバックアップから復元できますが、少し注意が必要なSSL証明書の作業をやり直す必要があるため、復元したくないことに注意してください。将来的にはUbuntuに移行し、CloudFormationを使用してサーバーを構築する予定なので、サーバーに障害が発生した場合は、別のサーバーを作成するだけで済みますが、それは将来のタスクです。
ロールバックの使用を提案していただきありがとうございます。試しましたが、正しくロールバックしませんでした。
VMの別のインスタンスを作成し、手動で実行しようとしました。上から、2つのバージョンのglibc-develがあることに注意して、次のことを実行しました。
yum remove glibc-devel-2.17-157.169.amzn1.x86_64
yum update glibc-devel-2.17-106.168.amzn1.x86_64
その時点で「yumcheck」を実行したところ、Subversionにも問題があることがわかりました。
yum remove Subversion
yum install Subversion
yum clean all
yum check
これで問題は解決したようです。
私はglibc-common-2.17-106.1.169.amzn1.x86_64で同様の問題を抱えていました。これは、他のすべてのglibcバージョンが@ 2.17-55である壊れたインストールです。
Yum restart glibc-common-2.17-106.1.169.amzn1.x86_64を実行すると、適切な依存関係の解決がトリガーされ、競合が修正されました。