#python #debian
Мне нужно установить последнюю версию Python на Debian. Уже изменил репозитории в sources.list на тестовые и обновился, но все равно не последняя версия Python. Обновлять всю систему с нестабильных или экспериментальных репозиториев не хочу. Можно ли как-то из них установить только Python, либо установить из архива с официального сайта?
Ответы
Ответ 1
Нет пакета - можно собрать из исходников. Рассмотрим глобальную установку с нуля (без обсуждения таких утилит как pyenv), для гольной Debian 8. Вам потребуется sudo: suapt-get install sudo Потребуется обновить список репозиториев с пакетами. Пример списка для версии, отличной от 8 можно взять отсюда. Нужно открыть файл /etc/apt/sources.list в любом текстовом редакторе (sudo vi /etc/apt/sources.list) и добавить для jessie: deb http://httpredir.debian.org/debian jessie main deb-src http://httpredir.debian.org/debian jessie main deb http://httpredir.debian.org/debian jessie-updates main deb-src http://httpredir.debian.org/debian jessie-updates main deb http://security.debian.org/ jessie/updates main deb-src http://security.debian.org/ jessie/updates main Возможно, в этом же файле нужно будет закомментировать (#) строку (если она есть) с deb:cdrom [...], чтобы пакеты не искались на диске. Затем sudo apt-get update - обновит список пакетов. Потребуется компилятор для C из пакета GNU Compiler Collection: gcc и make. Оба пакета есть в build-essential sudo apt-get install build-essential Еще есть необязательные, но важные зависимости: zlib и ssl sudo apt-get install openssl sudo apt-get install zlib1g-dev Без zlib не получится работать с zip архивами, без ssl не получиться открыть https:// адреса (и это как минимум). Последняя зависимость - checkinstall - sudo apt-get install checkinstall. Затем выбираем любую папку и в ней будет собираться Python 3.6. Для другой версии, необходимо будет поменять ссылку и имя файла на соответствующую версию. Пояснения по configure --enable-optimizations есть в README. wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz tar xvf Python-3.6.0.tgz cd Python-3.6.0 ./configure --enable-optimizations make -j4 make test sudo checkinstall -D --pkgname=python3_6 make altinstall Аргумент -j4 разрешит параллельную компиляцию на 4 ядрах - можно указать любое доступное системе количество и это значительно ускорит сборку. checkinstall вместо копирования в папки напрямую создаст .deb пакет и затем установит его. Основное преимущество - потом его (пакет) очень легко удалить. В противном случае нужно знать что и куда было установлено, чтобы удалить все вручную. Во время выполнения последней команды вам будет предложено настроить пакет - шаг можно пропустить и оставить все значения по-умолчанию. Аргумент pkgname не должен конфликтовать с существующими пакетами. altinstall параметр не перезапишет версию python3 по-умолчанию (системные и не только утилиты могут ее использовать), а создаст только pythonX.X бинарник. Пакет был установлен автоматически, удалить его можно командой dpkg -r python3-6 Установленный интерпретатор можно запустить командой python3.6 Ответ 2
Делал всё, как описано в инструкции выше. Устанавливается долго, но работает. Ставил на Debian 9, список репозиториев для неё такой: deb http://deb.debian.org/debian/ stretch main deb-src http://deb.debian.org/debian/ stretch main deb http://deb.debian.org/debian/ stretch-updates main deb-src http://deb.debian.org/debian/ stretch-updates main deb http://security.debian.org/debian-security/ stretch/updates main deb-src http://security.debian.org/debian-security/ stretch/updates main Всплыл один момент: по ходу установки везде мелькал python 3.6. После установки пытался вызвать - не работает. Методом тыка удалось определить, что встал python3.5.3. Так что если после установки у Вас та же проблема, то пробуйте запустить (естественно, из папки с установленным python): python5.3
Комментариев нет:
Отправить комментарий