Я запускаю yum check-update
, и он зависает после вывода двух строк:
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Я не уверен, что происходит. Последнее, что я помню, что делал с yum, это yum update
смотрел один из репозиториев CentOS yum, но не вносил никаких изменений.
Есть предложения по исправлению?
решение1
У вас может быть проблема с DNS. Попробуйте убедиться, что вы можете разрешить записи DNS локально:
nslookup google.com
Если вы получаете IP обратно от этой команды, у вас должно быть все в порядке с DNS. Попробуйте затем удалить кэш fastermirror и повторно запустить команду yum:
rm -f /var/cache/yum/timedhosts.txt
решение2
Со мной все это не сработало.
Использую CentOS и yum. yum зависает без сообщения об ошибке, по крайней мере, так кажется. Нажатие Ctrl+ Cне работает (нажатие снова и снова и снова работает).
Необходимо проверить несколько вещей: - все ли в порядке с репозиториями? - все ли в порядке с сетью? - все ли в порядке с базами данных yum и rpm?
Итак, начнем с самого простого — очистим базы данных:
rm -f /var/lib/rpm/__*
rpm --rebuilddb -v -v
yum clean all
Если это не сработало, вы можете установить уровень отладки, уровень ошибок и тайм-аут для yum в /etc/yum.conf
:
debuglevel=1
errorlevel=1
timeout=1
Тайм-аут составляет стандартные 30 секунд. Поэтому, если репозиторий не отвечает, ошибка появится через 30 секунд. Также попробуйте использовать yum без плагинов (например, faster mirror и prioritys) с опцией --noplugins
. Теперь повторный запуск yum должен дать вам больше информации быстрее. Протестируйте с помощью:
yum --verbose --noplugins info
У вас может получиться что-то вроде этого:
Config time: 0.105
Yum Version: 3.2.22
Setting up Package Sacks
Loading mirror speeds from cached hostfile
* base: mirror.nl.leaseweb.net
* extras: mirror.nl.leaseweb.net
* ius: mirrors.ircam.fr
* rpmforge: mirror.nl.leaseweb.net
* updates: mirror.nl.leaseweb.net link-to-server-repository/repomd.xml: [Errno 4] IOError: urlopen error (97, 'Address family not supported by protocol')
Trying other mirror.
Это означает, что с сервера не может быть получена информация. Попробуйте URL, отображаемый yum (указанный выше с помощью link-to-server-repository) в вашем веб-браузере. Скопируйте и вставьте его из вашего ответа yum, а не из этого поста! Если вы получите список, вы знаете, что репозиторий находится в сети.
Если вы получаете сообщение об ошибке в своем браузере, попробуйте удалить этот репозиторий из /etc/yum.repos.d
. Попробуйте получить список на своем сервере с помощью wget и вставить URL:
wget link-to-server-repository/repomd.xml
Если это приводит к тайм-ауту, то проблема в настройках вашего брандмауэра или прокси-сервера. Попробуйте отключить брандмауэр.
Если вы используете csf
(ConfigServer Security and Firewall) и lfd
можете отключить csf с помощью:
csf -x
Попробуйте yum еще раз, и если он сработает, вам придется перенастроить ваш csf
. Включите csf
снова с помощью:
csf -e
А также проверьте настройки прокси. Вы также можете попробовать изменить https на http в файлах .repo в /etc/yum.repos.d/
.
решение3
В моем случае это был затянувшийся файл блокировки базы данных RPM, /var/lib/rpm/.dbenv.lock
который заставлял команды yum зависать. После удаления этого файла yum можно было использовать снова.
решение4
Возникла похожая проблема, причиной которой было наличие файла блокировки yum /var/run/yum.pid
в том месте, где предыдущий запуск yum оставил его из-за фатальной ошибки.
Я удалил его, sudo rm /var/run/yum.pid
и проблема была решена.