Как установить Python3.3 на Debian x64?

Ситуация: на удалённом серваке Debian 6 x64. Пытаемся там завести питоновский скрипт.
Для работы скрипта нужен Python 3.3 (именно эта версия, другие не катят) с модулем sqlite3 (т.к. скрипт пишет в базу в этом формате)

На сервере по-умолчанию установлен python 2.7.

Удалось собрать python3.3 из исходников.
Где-то в нете взял руководство, ссылка не сохранилась:

wget http://python.org/ftp/python/3.3.0/Python-3.3.0.tar.bz2
tar jxf ./Python-3.3.0.tar.bz2
cd ./Python-3.3.0
./configure --prefix=/opt/python3.3
make && sudo make install
mkdir ~/bin
ln -s /opt/python3.3/bin/python ~/bin/py



Но неясно как ему собрать sqlite3. Попытка установить sqlite3:
apt-get install sqlite3

приводит к тому, что он устанавливается для Python 2.7. Что, в общем-то, ожидаемо.

Попытка уйти от кучи разных питонов на единую версию без сборки питона 3.3 из исходников не увенчалась успехом. Прочитал эту статью. Нашёл питон нужной версии и под нужную архитектуру

Прописал репозиторий python3.3 в /etc/apt/sources.list вот так:
deb ftp.de.debian.org/debian experimental main

обновили инфу по пакетам:
apt-get update && apt-get upgrade

а когда пытаемся установить версию 3.3:
apt-get install python3.3 
вываливается куча неудовлетворённых зависимостей в других пакетах:
apt-get install python3.3

Reading package lists… Done
Building dependency tree
Reading state information… Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
python3.3: Depends: python3.3-minimal (= 3.3.0-12) but it is not going to be installed
Depends: libpython3.3-stdlib (= 3.3.0-12) but it is not going to be installed
E: Broken packages


пытаемся установить python3.3-minimal:

apt-get install python3.3-minimal

Reading package lists… Done
Building dependency tree
Reading state information… Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
python3.3-minimal: Depends: libexpat1 (>= 2.1~beta3) but 2.0.1-7+squeeze1 is to be installed
Recommends: python3.3 but it is not going to be installed
E: Broken packages



Как в итоге решить вопрос?
  • Вопрос задан
  • 11003 просмотра
Решения вопроса 1
shanker
@shanker Автор вопроса
Проблема решилась. По выдаваемой ошибке при исполнении скрипта нагуглил вот такую страницу.
После чего пересобрал питон 3.3 (в сабже писал как это делал) и всё заработало
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
z0rc
@z0rc
Что-то не сходится. Давайте по порядку.
На сервере по-умолчанию установлен python 2.7.
Как? По умолчанию там как раз 2.6. В бекпортах его нет.

Но неясно как ему собрать sqlite3. Попытка установить sqlite3 приводит к тому, что он устанавливается для Python 2.7. Что, в общем-то, ожидаемо.
sqlite3 не зависит от питона и не содержит в своей поставке его модулей. Проверил в минимальном чруте, питон не ставится при установке sqlite3.

Нашёл питон нужной версии и под нужную архитектуру
Вы не сможете удовлетворить все зависимости, они ушли далеко вперёд. Скорее всего всё упрётся в libc6, которое потребует обновление всей системы.

Вообще выход из данной ситуации скорее всего есть. Вам нужно бекпортировать python3.3 из experimental. Примерно так:
apt-get -t experimental source python3.3
cd python3.3/debian
dch --bpo
cd ..
dpkg-buildpackage -us -uc
и удовлетворяете зависимости, пока не соберётся. Скорее всего придётся таскать что-то из squeeze-backports. Возможно понадобится слегка подправить правила сборки. И нужно учитывать, у вас всё равно будет два питона на сервере. Так как 2.х идёт по умолчанию, и все пакеты из стандартного репозитория будут завистеть от него.
Ответ написан
@smartlight
Устанавливайте необходимые пакеты(libpython3.3-stdlib, libexpat1).
Возможно из того репозитория, что и питон3.
И держите кулаки, что бы ничего не поломалось. Для теста, я бы сначала сделал такое на виртуалке.
Ответ написан
Комментировать
MechanisM
@MechanisM
попробуйте pythonbrew или pythonz через последний и pypy можно поставить. Ну и выбирать какой надо по умолчанию.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы