У меня есть оболочка, которая запускает CentOS.
Для проекта, который я делаю, мне нужен python 2.5+, но centOS довольно зависим от 2.4.
Из того, что я прочитал, некоторые вещи сломаются, если вы перейдете на 2.5.
Я хочу установить 2.5 отдельно от 2.4, но я не уверен, как это сделать. Пока я загрузил исходный tarball, распаковал его и сделал ./configure --prefix=/opt
, где я хочу, чтобы он закончил. Могу ли я теперь просто make, make install
? Или есть еще?
Ответ 1
Вы также можете использовать EPEL-репозиторий, а затем sudo yum install python26
установить python 2.6
Ответ 2
Попробуйте epel
wget http://download.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
sudo rpm -ivh epel-release-5-4.noarch.rpm
sudo yum install python26
Исполняемый файл python будет доступен в /usr/bin/python26
mkdir -p ~/bin
ln -s /usr/bin/python26 ~/bin/python
export PATH=~/bin:$PATH # Append this to your ~/.bash_profile for persistence
Теперь команда python
выполнит python 2.6
Ответ 3
Когда я сталкиваюсь с подобными ситуациями, я вообще избегаю диспетчера пакетов, особенно если было бы неловко что-то сломать, т.е. производственный сервер. Вместо этого я бы пошел в Activestate и загрузил их двоичный пакет:
https://www.activestate.com/activepython/downloads/
Это устанавливается при запуске script, который помещает все в папку и не касается каких-либо системных файлов. На самом деле вам даже не нужны права root для его настройки. Затем я меняю имя двоичного файла на нечто вроде apy26, добавляю эту папку в конец PATH и начинаю кодирование. Если вы устанавливаете пакеты с помощью apy26 setup.py install
, или если вы используете virtualenv и easyinstall, тогда у вас будет такая же гибкая среда python, сколько вам нужно, не касаясь системного стандартного питона.
редактирует...
Недавно я проделал определенную работу по созданию переносного бинарного Python для Linux, который должен работать на любом дистрибутиве без внешних зависимостей. Это означает, что любые бинарные разделяемые библиотеки, необходимые переносимому модулю Python, являются частью сборки, включенной в tarball и установленной в частной структуре Python. Таким образом вы можете установить Python для своего приложения, не мешая установленному Python системе.
Мой сайт github имеет сборку script, которая была тщательно протестирована на Ubuntu Lucid 10.04 LTS как на 32, так и на 64 бит. Я также построил его на Debian Etch, но это было давно, и я не могу гарантировать, что я ничего не изменил. Самый простой способ сделать это - просто поместить свой выбор Ubuntu Lucid в виртуальную машину, проверить script на git clone git://github.com/wavetossed/pybuild.git
, а затем запустить script.
Как только вы его построите, используйте tarball на любом последнем дистрибутиве Linux. Существует одна небольшая морщина, перемещающая ее в каталог, отличный от /data1/packages/python272
, который заключается в том, что вы должны запустить включенный patchelf
, чтобы установить путь интерпретатора ПЕРЕД двигателем каталога. Это влияет на любые двоичные файлы в /data1/packages/python272/bin
Все это основано на построении с RUNPATH и копировании зависимых разделяемых библиотек. Несмотря на то, что script находится в нескольких файлах, это фактически одна длинная оболочка script, расположенная в стиле директорий/etc/rc.d.
Ответ 4
Нет, это так. Возможно, вы захотите убедиться, что у вас есть все дополнительные заголовки библиотек, поэтому вам не придется перекомпилировать их позже. Они перечислены в документации, я думаю.
Кроме того, вы можете установить его даже в стандартном пути, если вы выполняете make altinstall
. Таким образом, он не переопределит ваш текущий "python" по умолчанию.
Ответ 5
Не нужно делать yum или создавать свой собственный RPM. Постройте python26
из источника.
wget https://www.python.org/ftp/python/2.6.6/Python-2.6.6.tgz
tar -zxvf Python-2.6.6.tgz
cd Python-2.6.6
./configure && make && make install
Может быть ошибка зависимостей использовать
yum install gcc cc
Добавьте путь установки (/usr/local/bin/python
по умолчанию) в ~/.bash_profile
.
Он не сломает yum
или любые другие вещи, которые зависят от python24
.
Ответ 6
Chris Lea предоставляет репозиторий YUM для RPM python26, который может сосуществовать с "родным" 2.4, который необходим для нескольких администраторов инструменты для CentOS.
Быстрые инструкции, которые работали хотя бы для меня:
$ sudo rpm -Uvh http://yum.chrislea.com/centos/5/i386/chl-release-5-3.noarch.rpm
$ sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CHL
$ sudo yum install python26
$ python26
Ответ 7
Если вы хотите сделать это проще для себя, есть CentOS RPM для новых версий Python, плавающих по сети. Например. см:
http://www.geekymedia.com/python_26_centos.html
Ответ 8
Когда вы устанавливаете свою версию python (в данном случае это python2.6), затем выполните эту команду, чтобы создать свой virtualenv
:
virtualenv -p /usr/bin/python2.6 /your/virtualenv/path/here/
Ответ 9
Поздно к партии, но OP должен был пойти с Buildout или Virtualenv и полностью устранить проблему.
В настоящее время я работаю над сервером Centos, ну, я бы сказал, что это будет подходящий термин, и я могу заверить всех, что единственный способ, которым я могу моргнуть от слез, используя программные эквиваленты огнеупорных копьев, - это buildout,
Ответ 10
вы всегда можете сделать свой собственный RPM:
http://www.grenadepod.com/2009/12/26/building-python-2-6-4-rpm-for-centos-5-4/
Ответ 11
Отсутствует зависимость: libffi.so.5 находится здесь:
ftp://ftp.pbone.net/mirror/centos.karan.org/el5/extras/testing/i386/RPMS/libffi-3.0.5-1.el5.kb.i386.rpm
Ответ 12
rpm -Uvh http://yum.chrislea.com/centos/5/i386/chl-release-5-3.noarch.rpm
rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CHL
rpm -Uvh ftp://ftp.pbone.net/mirror/centos.karan.org/el5/extras/testing/i386/RPMS/libffi-3.0.5-1.el5.kb.i386.rpm
yum install python26
python26
для dos, которые просто не знают: =)
Ответ 13
# yum groupinstall "Development tools"
# yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel
Загрузите и установите Python 3.3.0
# wget http://python.org/ftp/python/3.3.0/Python-3.3.0.tar.bz2
# tar xf Python-3.3.0.tar.bz2
# cd Python-3.3.0
# ./configure --prefix=/usr/local
# make && make altinstall
Загрузите и установите Distribute для Python 3.3
# wget http://pypi.python.org/packages/source/d/distribute/distribute-0.6.35.tar.gz
# tar xf distribute-0.6.35.tar.gz
# cd distribute-0.6.35
# python3.3 setup.py install
Установить и использовать virtualenv для Python 3.3
# easy_install-3.3 virtualenv
# virtualenv-3.3 --distribute otherproject
New python executable in otherproject/bin/python3.3
Also creating executable in otherproject/bin/python
Installing distribute...................done.
Installing pip................done.
# source otherproject/bin/activate
# python --version
Python 3.3.0
Ответ 14
Я не понял исходную версию python (2.6.6) и установил 2.7 (с опцией make && make altinstall
), но когда я попытался установить что-то с yum, это не сработало.
Итак, я решил эту проблему следующим образом:
Готово