Yum не работает в чистой CentOS 7 — как это исправить?
Сегодня я бился головой о стену, пытаясь найти решение следующей загадочной проблемы. Всякий раз, когда я запускаю любую команду в Терминале, будь то установка пакета или обновление системы, моя минимальная система CentOS 7 выдает следующую ошибку.
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: centos.excellmedia.net
* elrepo: ftp.nluug.nl
* extras: mirrors.vonline.vn
* updates: mirrors.vonline.vn
Traceback (most recent call last): 27% [================ ] 140 kB/s | 2.5 MB 00:00:48 ETA
File "/usr/libexec/urlgrabber-ext-down", line 75, in
main()
File "/usr/libexec/urlgrabber-ext-down", line 61, in main
fo = PyCurlFileObject(opts.url, opts.filename, opts)
File "/usr/lib/python2.7/site-packages/urlgrabber/grabber.py", line 1258, in __init__
self._do_open()
File "/usr/lib/python2.7/site-packages/urlgrabber/grabber.py", line 1589, in _do_open
self._do_grab()
File "/usr/lib/python2.7/site-packages/urlgrabber/grabber.py", line 1723, in _do_grab
self._do_perform()
File "/usr/lib/python2.7/site-packages/urlgrabber/grabber.py", line 1517, in _do_perform
raise KeyboardInterrupt
KeyboardInterrupt
Exiting on user cancel
Я не отменяю процесс и не прерываю клавиатуру, но моя виртуальная машина CentOS 7 продолжала отображать вышеуказанную ошибку. Я пробовал много раз, но не смог установить ни одного пакета или обновить систему.
К счастью, я нашел решение в этой теме.
Вот что я сделал, чтобы решить проблему. На всякий случай вы столкнулись с той же ошибкой, сделайте следующее.
В терминале выполните одну за другой следующие команды от имени пользователя root:
yum clean metadata
yum clean all
yum upgrade
Или просто запустите однострочную команду от имени пользователя root:
bash -c 'yum clean metadata && yum upgrade'
Вот и все. Проблема исчезла! Теперь я могу без проблем установить любое программное обеспечение.
Обновление от 12 апреля 2016 г.:
К сожалению, вышеуказанное решение мне больше не помогло. Понятия не имею почему. Однако мне удалось временно исправить вышеуказанную ошибку, выполнив следующий трюк.
Отредактируйте файл /usr/lib/python2.7/site-packages/urlgrabber/grabber.py,
vi /usr/lib/python2.7/site-packages/urlgrabber/grabber.py
Найдите следующую строку (1510-я строка) и похвалите ее, добавив перед ней символ решетки (#).
elif errcode in (42, 55, 56):
Сохраните и закройте файл.
И, наконец, выполните следующие команды одну за другой от имени пользователя root:
yum clean metadata
yum clean all
yum upgrade
На этот раз это сработало! Я действительно понятия не имею, почему это происходит. Надеюсь это поможет.