Yum разбился с ошибкой прерывания клавиатуры

Я установил более новую версию python (3.2.3), чем в Fedora16 (python2.7)

И теперь yum перестает работать. Это показывает следующую ошибку.

[[email protected] yum-3.4.3]# yum
  File "/usr/bin/yum", line 30
   except KeyboardInterrupt, e:
                           ^
SyntaxError: invalid syntax

Посоветуйте, пожалуйста, как устранить ошибку. Это было бы полезно, так как я не могу обновить или установить какой-либо пакет.

Ответ 1

Потому что yum не поддерживает Python3.
Вы можете запустить команду vi /usr/bin/yum, изменить /usr/bin/python на /usr/bin/python2 в первой строке.
Таким образом, вы можете запустить команду yum с помощью Python2 вместо Python3.

Обратите внимание, что это сделает вашу настройку неподдерживаемой и, следовательно, не поддерживаемой (как и то, что вы сделали). Вероятно, в будущем у вас будут другие подобные проблемы с другими системными пакетами.
Если вы хотите использовать альтернативную установку Python, рассмотрите возможность установки ее в /usr/local, /opt или с помощью pyenv.

Ответ 2

Я предполагаю, что вы установили Python 3.2.3 из источника и использовали "make install" в качестве последней команды. Эта команда имеет неудачный побочный эффект замены установленной версии команды "python" новой версией. Использование "make altinstall" не заменяет "python".

Команда "python" - это просто символическая ссылка на "python2", которая, в свою очередь, является символической ссылкой на "python2.7". Вы должны восстановить "python", выполнив следующую команду:

cd /usr/bin
sudo ln -s python2 python

Ответ 3

Эта проблема возникает, когда пользователь обновляется до python3. Просто отредактируйте файл → /usr/bin/yum и перейдите в первую строку в → "#!/usr/bin/python2"

Вышеупомянутое решение не решило бы все проблемы зависимости yum, тем лучше выполнить приведенные ниже команды.

sudo ln -s/usr/local/bin/python3/usr/bin/python3 (отметьте последний python как python3)

sudo ln -sf/usr/bin/python2.7/usr/bin/python (nake 2.7 по умолчанию python)

благодарив, Даман

Ответ 4

Спасибо, Даманвир! Изменение строки в /usr/bin/yum сработало!

Это немного не по теме и может быть удалено, но это может кому-то помочь.

Это шаги, которые я использовал для установки Python 3.7 на Centos и исправления ошибки yum.

Скачать с https://www.python.org/

tar -xvf
./configure --enable-optimizations

make
make install

ИЛИ

make altinstall

make altinstall используется для предотвращения замены двоичного файла python по умолчанию /usr/bin/python.

cd /usr/bin

Удалить текущую символическую ссылку на предыдущую версию

rm python

ВЫХОД: rm: удалить символическую ссылку link python? у

Найти местоположение новой версии

whereis python3.7
 OUTPUT: python3: /usr/local/bin/python3.7

Убедитесь, что это правильно

  /usr/local/bin/python3.7 --version
  OUTPUT: Python 3.7.0

Создайте символическую ссылку на местоположение новой версии

ln -s /usr/local/bin/python3.7 python

python --version

ВЫХОД: Python 3.7.0

Команды Yum покажут следующую ошибку:

  File "/bin/yum", line 30
      except KeyboardInterrupt, e:

  SyntaxError: invalid syntax

Измените верхнюю строку этого файла с использования python на python2

  vi /usr/bin/yum 
    #!/usr/bin/python2

Ссылка: https://tecadmin.net/install-python-3-7-on-centos/

Ответ 5

Damanvir, как я могу отредактировать и сохранить файл из консоли?