RHEL 5.6のリポジトリを作成しました。私が削除したRHEL 5.2の既存のリポジトリはすでに存在していました。
次のコマンドを実行しました。
yum clean all
yum clean metadata
その後、
yum list all
すべてのパッケージが一覧表示されます。
しかし、YUM UPDATEと入力すると、それが示している
Setting up Update Process
Setting up repositories
rhel-local 100% |=========================| 951 B 00:0
Reading repository metadata in from local files
primary.xml.gz 100% |=========================| 1.1 MB 00:0
################################################## 3229/3229
Setting up Update Process
Setting up repositories
Reading repository metadata in from local files
そして、それはすべての人々です。 YUM UPDATEからの応答はありません。
Yumが行き詰まっている理由は何ですか?
RPMデータベースを再構築することもできます。
yum clean all
rpm --rebuilddb
私の場合、yumがスタックしてしまうRPM dbロックがありました。
ランニング strace yum --verbose --noplugins info
は行き詰まります:
open("/var/lib/rpm/.dbenv.lock", O_RDWR|O_CREAT, 0644) = 5
umask(022) = 022
fcntl(5, F_SETLKW, {type=F_WRLCK, whence=SEEK_SET, start=0, len=0}Killed
それを修正するために、私はルートとして実行しました:
rm /var/lib/rpm/.dbenv.lock
これは通常、別のyum
プロセスが既に実行されているか、システムでyum
が維持しているメタデータが破損している場合に発生します。
最初の問題では、通常、既存のすべてのyumプロセスを強制終了してから、このコマンドyum-complete-transaction
を実行します。これにより、yumがyup自体をクリーンアップできるようになります。
2番目の問題については、通常、yum clean all
を実行してメタデータの断片とパッケージを消去し、通常どおりyum update
を実行する必要があります。
RPMデータベースのさまざまな問題を解決するために、このコマンドpackage-cleanup <options>
を実行することもあります。
重複するパッケージをクリーンアップします(ローカルRPMデータベースの重複をスキャンし、古いバージョンを削除します)
package-cleanup --cleandupes
問題のスキャン(ローカルRPMデータベースの依存関係の問題をリストします。問題が見つかった場合は、終了コード1で終了します)
package-cleanup --problems
孤児をリストします。 (現在設定されているリポジトリから入手できないインストール済みパッケージをリストします。これはyum list extras
と同じで、より良い出力を提供する可能性があります)
package-cleanup --orphans
/ var/log/messagesでiscsiエラーメッセージを発見しました。そして、私はiscsiとiscidデーモンを停止しました。その後、yumは更新プロセスを完了しました。