Как исправить - bash: / usr / bin / python: слишком много уровней символических ссылок - PullRequest
0 голосов
/ 21 октября 2019

Я хотел сделать python3 своим значением по умолчанию для rhel, поэтому я следовал следующим указаниям на Как установить Python3.5.2 в качестве версии Python по умолчанию для CentOS?

sudo ln -fs /usr/bin/python3 /usr/bin/python

Это изменило значение по умолчаниюto 3.6.8

root@rhel:~# python -V
Python 3.6.8

Затем я попытался установить yum python-pip:

root@rhel:~# yum install python-pip
  File "/usr/bin/yum", line 30
    except KeyboardInterrupt, e:
                        ^
SyntaxError: invalid syntax

Это произошло, когда я попробовал несколько других команд. Я попытался отменить изменения с помощью

root@rhel:~# sudo ln -fs /usr/bin/python /usr/bin/python

Но я сталкиваюсь с

root@rhel:~# python -V
bash: /usr/bin/python: Too many levels of symbolic links

Я думаю, из того, что я читаю в местах, мне нужно разорвать ссылки на символы. Вот что в моем / usr / bin /

enter image description here

ls -l / usr / bin |grep python

lrwxrwxrwx    1 root root          15 Oct 21 14:12 python -> /usr/bin/python
lrwxrwxrwx    1 root root          14 Aug  8 05:53 python-config -> python2-config
lrwxrwxrwx    1 root root           9 Aug  8 05:51 python2 -> python2.7
lrwxrwxrwx    1 root root          16 Aug  8 05:53 python2-config -> python2.7-config
-rwxr-xr-x    1 root root        7144 Jun 11 10:34 python2.7
-rwxr-xr-x    1 root root        1835 Jun 11 10:34 python2.7-config
lrwxrwxrwx    1 root root           9 Aug  8 05:51 python3 -> python3.6
lrwxrwxrwx    1 root root          16 Aug  8 05:53 python3-config -> python3.6-config
lrwxrwxrwx    1 root root          20 Aug  8 05:53 python3-debug -> /usr/bin/python3.6dm
-rwxr-xr-x    2 root root       11336 Jun 11 15:17 python3.6
lrwxrwxrwx    1 root root          17 Aug  8 05:53 python3.6-config -> python3.6m-config
-rwxr-xr-x    1 root root       11336 Jun 11 15:17 python3.6dm
-rwxr-xr-x    1 root root         175 Jun 11 15:16 python3.6dm-config
-rwxr-xr-x    1 root root        3396 Jun 11 14:54 python3.6dm-x86_64-config
-rwxr-xr-x    2 root root       11336 Jun 11 15:17 python3.6m
-rwxr-xr-x    1 root root         173 Jun 11 15:16 python3.6m-config
-rwxr-xr-x    1 root root        3403 Jun 11 14:54 python3.6m-x86_64-config

Ответы [ 2 ]

2 голосов
/ 22 октября 2019

ln -fs /usr/bin/python /usr/bin/python создает рекурсивную символическую ссылку - то есть она указывает на себя.

yum кажется написанным с синтаксисом Python 2, поэтому верните эту символическую ссылку обратно:

sudo ln -fs python2 /usr/bin/python

Затем найдите способ сделать Python 3 по умолчанию, который не нарушает работу вашего менеджера пакетов. Например, псевдоним

См. PEP 394 для обоснования сохранения Python 2 по умолчанию.

Ps Я не знаком с RHEL, но всеэто соответствует моему опыту работы с Ubuntu.

2 голосов
/ 21 октября 2019

эта строка результата

lrwxrwxrwx    1 root root          15 Oct 21 14:12 python -> /usr/bin/python

говорит нам, что символическая ссылка python указывает на себя, что приводит к ошибке "Too many level".

, которую вы можете удалитьссылка через

rm python

или сбросьте ссылку на python3, используя

ln -fs /usr/bin/python3 /usr/bin/python

(вероятно, для обоих случаев требуется sudo)

Ошибка установки yumотдельный вопрос, хотя

...