2009-09-23 34 views
83

Tengo un shell que ejecuta CentOS.Instalar Python 2.6 en CentOS

Para un proyecto que estoy haciendo, necesito Python 2.5+, pero centOS es bastante dependiente de 2.4.

Por lo que he leído, varias cosas se romperán si actualiza a 2.5.

Quiero instalar 2.5 por separado de 2.4, pero no estoy seguro de cómo hacerlo. Hasta ahora he descargado el tarball de origen, lo he destrabado e hice un ./configure --prefix=/opt que es donde quiero que termine. ¿Puedo ahora solo make, make install? ¿O hay más?

+8

Personalmente, usé mucho CentOS e hice el cambio a Ubuntu debido a lo crudas que son las distribuciones de RedHat/CentOS (Python 2.4 ...). Si políticamente puedes dar el salto, hazlo. Serás mucho más feliz y ya no tendrás que preocuparte por este tipo de cosas. –

+1

Compilar desde el origen e instalarlos en '/ usr/local' (valor predeterminado) no debería causar ningún problema. O, mejor aún, basureros e instale debian: P –

+19

¿Eh? El objetivo de CentOS/RHEL es el soporte a largo plazo. Si hay una opción para cambiar a la última distribución, cambiar a Fedora tiene mucho más sentido que cambiar a Ubuntu para alguien con un fondo CentOS. –

Respuesta

24

No, eso es todo. Es posible que desee asegurarse de tener instalados todos los encabezados de biblioteca opcionales para que no tenga que volver a compilarlos más tarde. Se enumeran en la documentación, creo.

Además, puede instalarlo incluso en la ruta estándar si lo hace make altinstall. De esta forma, no anulará su "pitón" predeterminada actual.

+12

+1: 'sudo make altinstall' – jfs

+3

wget http://www.python.org/ftp/ python/2.6.6/Python-2.6.6.tgz luego ./configure them make altinstall –

12

Chris Lea proporciona un repositorio de YUM para python26 RPM que pueden coexistir con el 2.4 "nativo" que se necesita para bastantes herramientas de administración en CentOS.

Instrucciones rápidas que trabajaron al menos para mí:

$ 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 
+3

Esto no funcionó en CentOS 5.4: No hay paquete python26 disponible. –

+3

No funcionó en CentOS 5.5: Dependencia faltante: libffi.so.5 –

+0

¿funcionará esto en centOs? – Charlesliam

28

Cuando me he encontrado con situaciones similares, por lo general evitan el gestor de paquetes, especialmente si sería embarazoso para romper algo, es decir, un servidor de producción . En su lugar, me gustaría ir a Activestate y descargar su paquete binario:

https://www.activestate.com/activepython/downloads/

Esto se instala mediante la ejecución de un script que pone todo en una carpeta y no toca ningún archivo del sistema. De hecho, ni siquiera necesita permisos de root para configurarlo. Luego cambio el nombre del binario a algo como apy26, agrego esa carpeta al final de la RUTA y comienzo la codificación. Si instala paquetes con apy26 setup.py install o si usa virtualenv y easyinstall, entonces tiene un entorno python lo más flexible que necesita sin tocar el sistema python estándar.

Edits ... Recientemente he hecho algunos trabajos para construir un Python portátil para Linux que se debe ejecutar en cualquier distribución sin dependencias externas. Esto significa que cualquier biblioteca binaria compartida que necesite el módulo portátil de Python es parte de la compilación, incluida en el archivo tar e instalada en la estructura de directorios privados de Python. De esta forma puede instalar Python para su aplicación sin interferir con el sistema instalado en Python.

My github site tiene una secuencia de comandos de compilación que se ha probado exhaustivamente en Ubuntu Lucid 10.04 LTS instalaciones de 32 y 64 bits. También lo construí en Debian Etch, pero eso fue hace un tiempo y no puedo garantizar que no haya cambiado algo. La forma más fácil de hacer esto es simplemente poner su elección de Ubuntu Lucid en una máquina virtual, verifique el script con git clone git://github.com/wavetossed/pybuild.git y luego ejecute el script.

Una vez que lo haya construido, use el archivo tar en cualquier distribución reciente de Linux.Hay una pequeña arruga al moverlo a un directorio que no sea /data1/packages/python272, que es que debe ejecutar el patchelf incluido para establecer la ruta del intérprete ANTES de mover el directorio. Esto afecta a cualquier binario en /data1/packages/python272/bin

Todo esto se basa en construir con RUNPATH y copiar las bibliotecas compartidas dependientes. Aunque la secuencia de comandos se encuentra en varios archivos, se trata de una secuencia de comandos de shell larga dispuesta en el estilo de los directorios /etc/rc.d.

+4

No sé cuál era la licencia en el pasado, pero lamentablemente ahora no le permite usar ActivePython en servidores externos a menos que compre la Edición Comercial ($$$). https://www.activestate.com/compare-editions – Nate

+2

para evitar romper un servidor con el administrador de paquetes, ¿confía en las secuencias de comandos de un proveedor externo? huh – akostadinov

2

tarde a la fiesta, pero la OP debería haber ido con Buildout o Virtualenv, y eludido el problema por completo.

Actualmente estoy trabajando en un servidor de Centos, bueno, trabajando duro sería el término adecuado y puedo asegurarles a todos que la única manera en que puedo parpadear mientras uso los equivalentes de software de lanzas endurecidas por fuego es construir.

+2

puede usar virtualenv para instalar python2.6 cuando solo python2.4 está instalado? –

+0

Ciertamente. Utilice la opción --no-site-packages en virtualenv, creo, o construya una python en buildout. – chiggsy

+0

NO, virtualenv solo trata con módulos/paquetes de python y sus versiones.Todavía necesita apuntar a un intérprete de trabajo python binario (que ya está en el sistema). –

77

También es posible usar el EPEL-repository, y luego hacer sudo yum install python26 instalar Python 2.6

+8

Cómo usar EPEL: http://fedoraproject.org/wiki/EPEL/FAQ#howtouse - Pero recuerde reemplazar el i386 con su arco si no es 32-bit x86 – rakslice

+0

¡Funcionó para mí! ¡Los necesitaba para otro proyecto también, así que estoy doblemente feliz! – rholmes

+1

parece que Python 2.6 ya no está en Epel. – mujimu

25

No hay necesidad de hacer rico o hacer tu propio RPM Build python26 de la fuente.

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 

Puede haber un error de dependencia uso

yum install gcc cc 

Agregar la ruta de instalación (/usr/local/bin/python por defecto) a ~/.bash_profile.

No se romperá yum o cualquier otra cosa que dependa de python24.

+1

Nota: Se requiere un compilador de C para que esto funcione. No parece que uno venga con stock de CentOS 5 (al menos, el mío no tiene uno en la RUTA) –

+0

./configure && make && make alt install (http://toomuchdata.com/2014/02/16/how-to-install-python-on-centos /) – luismartingil

1
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 

para DOS que simplemente no saben: =)

31

Try 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 

El ejecutable pitón estará disponible en /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 

Ahora, python comando se ejecutará python 2.6

+0

Gracias por el último bit - Acabo de instalar python26 y me preguntaba cómo hacer que el 'predeterminado' (2.4) se refiera al 2.6. Crear un enlace simbólico y ajustar la ruta lo hizo. –

+0

Esto obviamente funcionará ... para un usuario ... hasta que uno reemplaza python2.6 con 3.0 o lo que sea ... pero parece ser la forma recomendada de hacerlo. Tengo problemas para creer que CentOS no viene con una herramienta para seleccionar la versión de varios paquetes instalados simultáneamente (a menudo encuentro 2 versiones de Java, PostgreSQL y ahora python), algo así como configure_python -s 2.6 y todo " mágicamente "cae en su lugar detrás de las cortinas, sin que el usuario tenga que pensar en casos de esquina años en el futuro". –

+0

Creo que la razón es que, al ser un SO empresarial principalmente utilizado para servidores, las personas no desarrollan mucho en Cent OS. Una vez que todo está configurado correctamente, no tocan el servidor a menos que haya actualizaciones de seguridad ocasionales. –

0

Desinstalé la versión original de python (2.6.6) e instalé 2.7 (con la opción make && make altinstall) pero cuando intenté instalar algo con yum no funcionó.

Así que resolvieron este problema de la siguiente manera:

  1. # ln -s /usr/local/bin/python /usr/bin/python
  2. descargue el paquete RPM pitón-2.6.6-36.el6.i686.rpm de http://rpm.pbone.net/index.php3/stat/4/idpl/20270470/dir/centos_6/com/python-2.6.6-36.el6.i686.rpm.html
  3. Ejecutar como root rpm -Uvh python-2.6.6-36.el6.i686.rpm

Hecho

1
# yum groupinstall "Development tools" 
# yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel 

Descargar e instalar 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 

Descargar e instalar Python 3.3 Distribuir para

# 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 

Instalar y usar virtualenv para 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 
3

Al instalar la versión de Python (en este caso, es python2.6) a continuación, emita este comando para crear su virtualenv:

virtualenv -p /usr/bin/python2.6 /your/virtualenv/path/here/ 
0

Escriba los siguientes comandos en el terminal para instalar Python 3.6 en CentOS 7:

$ sudo yum install https://centos7.iuscommunity.org/ius-release.rpm 

Después, realice:

$ sudo yum install python36u 

También puede instalar cualquier versión en lugar de 3.6 (si quieres) por sólo la sustitución de 36 por su número de versión.