web-dev-qa-db-ja.com

「yum clean」がハングする-次に何を試してみますか?

多くのCentOSサーバーを実行しています。最近、たまにyum updateしかし、これは少数のサーバーで失敗しました。ほとんどの場合、私は次のようにして前進することができました:

# yum clean all
# rm -f /var/lib/rpm/__db*
# rpm --rebuilddb
# yum update

ただし、1つのサーバーでは、yum cleanコマンドがハングします。私は走ってみました:

# yum -v --noplugins clean all

しかし、何も出力されません。 Yumハングアップするだけで、CPUを使用せずにそのままにしておくと、何時間もそこに座って停止します。

# strace -f yum -v --noplugins clean all

大量の出力が生成されますが、次のように停止します。

...
stat64("/var/lib/rpm/__db.003", {st_mode=S_IFREG|0644, st_size=450560, ...}) = 0
open("/var/lib/rpm/__db.003", O_RDWR|O_LARGEFILE) = 4
fcntl64(4, F_SETFD, FD_CLOEXEC)         = 0
mmap2(NULL, 450560, PROT_READ|PROT_WRITE, MAP_SHARED, 4, 0) = 0xb6b34000
close(4)                                = 0
stat64("/var/lib/rpm/Packages", {st_mode=S_IFREG|0644, st_size=14938112, ...}) = 0
open("/var/lib/rpm/Packages", O_RDONLY|O_LARGEFILE) = 4
fcntl64(4, F_SETFD, FD_CLOEXEC)         = 0
read(4, "\0\0\0\0\1\0\0\0\0\0\0\0a\25\6\0\10\0\0\0\0\20\0\0\0\10\0\0k\t\0\0"..., 512) = 5
12
close(4)                                = 0
open("/var/lib/rpm/Packages", O_RDONLY|O_LARGEFILE) = 4
fcntl64(4, F_SETFD, FD_CLOEXEC)         = 0
fstat64(4, {st_mode=S_IFREG|0644, st_size=14938112, ...}) = 0
futex(0xb6b7bd1c, FUTEX_WAIT, 1, NULL

この時点で私は行き詰まりを感じています。これはプロダクションサーバーなので、吹き飛ばしたり、yum情報をすべて吹き飛ばしたりしたくありません。 yumのものとは別に、サーバーは正常に動作しています。

5
Hamish Downer

同じ問題があり、すべてのyumコマンドがハングしていました。

次のコマンドを実行しました

rm /var/lib/rpm/__db*
rm /var/lib/rpm/.rpm.lock
rm /var/lib/rpm/.dbenv.lock

したがって、上記のコメントと回答のいくつかの組み合わせ。

7
Mz A

私のRedhat 7.2では、これはyumコマンドを実行するのに役立ちます。

 rm /var/lib/rpm/.dbenv.lock
2
Sven Kirsten

これは直接的な回答ではありませんが、他の回答からのコマンドがどれも役に立たなかった場合は、コマンドpackage-cleanupを確認します。

提案されたすべてのコマンドはRPMデータベースを処理するためのものですが、インストールされている一部のパッケージの関係に問題がある可能性があります。

man package-cleanupから:

DESCRIPTION
       package-cleanup is a program for cleaning up the locally-installed RPMs.
EXAMPLES
       List all dependency problems:
              package-cleanup --problems

       List all packages that are not in any Yum repository:
              package-cleanup --orphans

2番目の例のコマンドから始めます。以前に使用したことがあり、yum cleanに関連するCentOSマシンの1つにあったいくつかの奇妙な問題を解決しました。

1
Itai Ganot

上記のすべてに加えて:

ps -ef | grep yum # kill off all yum processes
ps -ef | grep rpm # kill off rpm processes

これを行うまで、上記のいずれも機能しませんでした。

クレジット: https://cloudlinux.zendesk.com/hc/en-us/articles/115004580385-If-RPM-or-yum-processes-hangs

0
Mr Tony Payne