YUM UPDATE застрял навсегда

Я создал репозиторий для 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 либо метаданные, которые yum поддерживает в системе, повреждены.

Для первой проблемы я обычно убиваю любые существующие yum-процессы, а затем запускаю эту команду yum-complete-transaction , которая должна позволить yum очищать yup после себя.

Во второй проблеме я обычно должен запускать yum clean all чтобы исключить любые метафайлы и пакеты, а затем запустить yum update как обычно.

Иногда я также запускаю эту команду, package-cleanup <options> чтобы очистить различные проблемы с базой данных RPM:

  • очистить любые дубликаты пакетов (сканировать дубликаты в локальной базе данных RPM и очищать старые версии)

     package-cleanup --cleandupes 
  • сканирование проблем (проблемы с зависимостями списков в локальной базе данных RPM. Если обнаружены какие-либо проблемы, он выйдет с кодом выхода 1)

     package-cleanup --problems 
  • Список сирот. (Список установленных пакетов, которые недоступны в репозиториях с точной настройкой. Это идентично yum list extras , что может обеспечить лучший вывод)

     package-cleanup --orphans 

В моем случае у меня был блокировка db RPM, которая заставляла yum застревать.

Запуск 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 

поэтому, чтобы исправить это, я побежал как root:

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

Я обнаружил сообщения об ошибках iscsi в / var / log / messages. А потом я остановил демонами iscsi и iscid. После этого yum завершил процесс обновления.