Как включить python35 из Коллекции программного обеспечения при входе в систему?

Я следил за Quick Start Коллекции программного обеспечения, и теперь у меня установлен Python 3.5. Как я могу сделать это всегда включен в моем ~/.bashrc, так что мне не нужно включать его вручную с scl enable rh-python35 bash?

2 ответа

Решение

Использовать scl_source особенность.

Создать новый файл в /etc/profile.d/ чтобы включить вашу коллекцию автоматически при запуске:

$ cat /etc/profile.d/enablepython35.sh
#!/bin/bash
source scl_source enable python35

См. Как сохранить коллекцию программного обеспечения Red Hat после перезагрузки / выхода из системы? для фона и деталей.

Этот ответ будет полезен тем, у кого ограниченный доступ для авторизации на сервере.

У меня была аналогичная проблема на виртуальном хостинге HostGator. Python3.5приходилось включать каждый раз после входа в систему. Вот мои 10 шагов к разрешению:

  1. Включите питон через скрипт scl python_enable_3.5 или же scl enable rh-python35 bash.

  2. Убедитесь, что он включен, выполнив python3.5 --version. Это должно дать вам вашу версию Python.

  3. Выполнять which python3.5получить свой путь. В моем случае это было /opt/rh/rh-python35/root/usr/bin/python3.5. Вы можете использовать этот путь, чтобы снова получить версию (просто чтобы убедиться, что этот путь работает для вас).

  4. Отлично, теперь пожалуйста exit из текущей оболочки.

  5. Теперь давайте снова получим версию через этот полный путь python3.5 /opt/rh/rh-python35/root/usr/bin/python3.5 --version.

    Это не даст вам версию, а только ошибку. В моем случае это было

      /opt/rh/rh-python35/root/usr/bin/python3.5: error while loading shared libraries: libpython3.5m.so.rh-python35-1.0: cannot open shared object file: No such file or directory
  1. Как упоминалось в ответе Тамаса , мы должны найти, что so файл. locate не работает на виртуальном хостинге, и вы не можете его установить.

    Используйте следующую команду, чтобы найти, где находится этот файл:

      find /opt/rh/rh-python35 -name "libpython3.5m.so.rh-python35-1.0"
  1. Вышеупомянутая команда напечатает полный путь (вторая строка) к файлу после его обнаружения. В моем случае вывод был
      find: `/opt/rh/rh-python35/root/root': Permission denied
/opt/rh/rh-python35/root/usr/lib64/libpython3.5m.so.rh-python35-1.0
  1. Вот полная команда для работы python3.5 на таком виртуальном хостинге, которая выдаст версию,
      LD_LIBRARY_PATH=/opt/rh/rh-python35/root/usr/lib64 /opt/rh/rh-python35/root/usr/bin/python3.5 --version
  1. Наконец, для краткости добавьте следующий псевдоним в свой ~ / .bashrc
      alias python351='LD_LIBRARY_PATH=/opt/rh/rh-python35/root/usr/lib64 /opt/rh/rh-python35/root/usr/bin/python3.5'
  1. Для проверки перезагрузите .bashrc к source ~/.bashrc и выполнить python351 --version.

Ну вот, теперь, когда вы снова входите в систему, у вас есть python351 приветствовать вас.

Это не ограничивается python3.5, но может быть полезен в случае других scl установленное программное обеспечение.

Другие вопросы по тегам