Я только что настроил сервер Ubuntu, и, похоже, он поставляется с Python 2.5. Я разрабатываю свое приложение на Python 2.6, но apt-cache search ^python
похоже, не содержит 2.6. Какой самый быстрый способ обновить репозитории apt-get
просматривает, чтобы включить тот, который имеет Python 2.6?
(Ответ смешанный в ответах / ответах-комментариях: самый быстрый способ - перейти на Ubuntu 9.04 или новее)
apt-get update; apt-get install python2.6
у меня работает [веселый], но у вас может быть более старая версия ubuntu. немного поиграйте с /etc/apt/sources.list и apt-get distr-upgrade, как описано Вот.
Если пакет недоступен в вашей версии Ubuntu, довольно легко выполнить резервное копирование пакета из более новой версии. Например:
Начнем с установки некоторых пакетов, необходимых для сборки любого пакета:
apt-get install build-essential devscripts
Далее получаем исходную упаковку. В этом случае мы переходим к http://packages.ubuntu.com/jaunty/python2.6 и посмотрите справа и увидите три ссылки в разделе «Загрузить исходный пакет». У вас должны получиться файлы .tar.gz, .diff.gz и .dsc.
Далее распаковываем исходники:
dpkg-source -x python2.6_2.6.2-0ubuntu1.dsc
Это распакует все в каталог. Если вы перейдете в этот каталог и посмотрите, сможем ли мы собрать его с установленными в настоящее время пакетами.
debuild -us -uc -b
Это либо займет некоторое время, либо вы создадите несколько пакетов в каталоге над исходным каталогом. В качестве альтернативы он будет жаловаться на отсутствие зависимостей сборки. Если вам повезет, вы можете просто установить их и снова попробовать собрать пакет. Если вам не повезло, пакет требует обновленного пакета. Вы можете попробовать выполнить ту же процедуру, чтобы построить зависимость сборки, или вы можете попробовать изменить версию зависимости в debian / control. Я бы сделал последнее только в том случае, если вы обнаружите, что собираете слишком много пакетов, поскольку упаковка не была протестирована с этими изменениями.
Получив пакеты, вы можете запустить
dpkg -i foo.deb bar.deb
Если он жалуется на зависимости, вы можете запустить:
apt-get install -f
который должен решить ваши проблемы с зависимостями. Если этого не произойдет, вам может потребоваться выполнить перенос дополнительных пакетов.
Для Ubuntu есть пакет Python 2.6, http://packages.ubuntu.com/search?keywords=python2.6, но только для jaunty
и karmic
выпускает. Вы могли бы схватить .deb
файл и установить его на предыдущие версии, но все может сломаться ..
Если apt-get
подводит вас, компиляция из исходников тривиальна:
# change this to latest on http://python.org/download/
PY_TWOSIX="http://python.org/ftp/python/2.6.2/Python-2.6.2.tgz"
# Required to compile anything - this is the only Ubuntu specific line
sudo apt-get install build-essential
# Download/extract the Python source file set in PY_TWOSIX
cd /tmp/
wget $PY_TWOSIX -O py.tgz
gunzip py.tgz
tar -xf py.tar
cd Python-*
# Configure, build and install it into /usr/local/python/2.6.2/
./configure --prefix=/usr/local/python/2.6.2
make
sudo make install
# Link python binary into /usr/local/bin/ as python2.6
sudo ln -s /usr/local/python/2.6.2/bin/python /usr/local/bin/python2.6
# you can also at add the directory to your $PATH rather than using sym-links
Конечно, вы должны попытаться установить все через диспетчер пакетов (чтобы вы получали автоматические обновления и тому подобное), но я стараюсь хранить старые версии Python и помещать их в /usr/local/python/
не должен мешать apt-get
вообще.
В Ubuntu 8.04 вам может потребоваться найти репозиторий портов для apt-get. Поэтому рекомендуется устанавливать с исходным кодом. В Ubuntu 9.04 и 10.04 стандартным является python2.6.
Какая это версия Ubuntu? Здесь есть (правда, очень старый) пост на StackOverflow, в котором предлагается делать это из источника, но это зависит от вашей версии: Вот
при желании вы можете открывать синаптические пакеты, обновлять пакеты и искать python2.6. Я всегда предпочитаю использовать синаптический.
Следующее сработало для меня с небольшими вариациями:
% sudo apt-get install python2.6-minimal