Installez python 2.6 dans CentOS


85

J'ai un shell qui exécute CentOS.

Pour un projet que je fais, j'ai besoin de python 2.5+, mais centOS dépend assez de 2.4.

D'après ce que j'ai lu, un certain nombre de choses vont casser si vous passez à la version 2.5.

Je veux installer 2.5 séparément de 2.4, mais je ne sais pas comment le faire. Jusqu'à présent, j'ai téléchargé l'archive tar source, je ne l'ai pas goudronnée et ./configure --prefix=/optj'ai fait un qui est l'endroit où je veux qu'il se termine. Puis-je maintenant juste make, make install? Ou y a-t-il plus?


8
Personnellement, j'utilisais beaucoup CentOS et je suis passé à Ubuntu en raison de la cruauté des distributions RedHat / CentOS (Python 2.4 ...). Si vous pouvez faire le saut sur le plan politique, faites-le. Vous serez beaucoup plus heureux et vous n'aurez plus à vous soucier de ce genre de choses.
Adam Nelson le

1
Compiler à partir des sources et les installer /usr/local(par défaut) ne devrait poser aucun problème. Ou, mieux encore, effacez les centos et installez debian: P
o0 '.

19
Hein? Le point de CentOS / RHEL est le support à long terme. S'il existe une option pour passer à la dernière distribution, le passage à Fedora a beaucoup plus de sens que le passage à Ubuntu pour quelqu'un avec une expérience CentOS.
Muhammad Alkarouri

1
Juste pour être clair, sans aucune barre latérale sarcastique: OUI. Vous pouvez installer une version plus récente de Python, à partir des sources, dans / opt comme vous l'avez indiqué. Ou par défaut, il va dans / usr / local / {bin, lib, share, man} qui fonctionne également très bien et n'interférera pas avec python 2.4, qui est TOUJOURS la version de CentOS 5. CentOS 6 est livré avec python 2.6.6.
IcarusNM

Réponses:


79

Vous pouvez également utiliser le référentiel EPEL , puis le faire sudo yum install python26pour installer python 2.6


8
Comment utiliser EPEL: fedoraproject.org/wiki/EPEL/FAQ#howtouse - Mais n'oubliez pas de remplacer le i386 par votre arch si ce n'est pas un x86 32 bits
rakslice

A travaillé pour moi! J'en avais également besoin pour un autre projet, donc je suis doublement content!
rholmes le

1
semble Python 2.6 n'est plus dans epel.
mujimu

1
@mujimu, je pense qu'ils ont peut-être fait de 2.6 la valeur par défaut sur 2.4. Ainsi, les commandes comme yum install python26peuvent yum install pythondépendre simplement de la saveur / version du système d'exploitation.
James Oravec

31

Essayez 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

L'exécutable python sera disponible sur /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

Maintenant, la pythoncommande s'exécuterapython 2.6


Merci pour le dernier bit - je viens d'installer python26 et je me demandais comment faire référence à la version 2.6 par défaut (2.4). La création d'un lien symbolique et l'ajustement du chemin l'ont fait.
Jay Sidri

Cela fonctionnera évidemment ... pour un utilisateur ... jusqu'à ce que l'on remplace python2.6 par 3.0 ou autre ... mais cela semble être la manière recommandée de le faire. J'ai du mal à croire que CentOS ne vient pas avec un outil pour sélectionner la version de divers packages installés simultanément à utiliser (je rencontre souvent 2 versions de Java, PostgreSQL et maintenant python), quelque chose comme configure_python -s 2.6 et tout "comme par magie" se met en place derrière les rideaux, sans que l'utilisateur ait à penser aux valises d'angle des années dans le futur.
Tomislav Nakic-Alfirevic

Je pense que la raison en est que, étant un système d'exploitation d'entreprise principalement utilisé pour les serveurs, les gens ne font pas beaucoup de développement sur Cent OS. Une fois que tout est configuré correctement, ils ne touchent pas le serveur, sauf pour des mises à jour de sécurité occasionnelles.
Joyce Babu

1
@ TomislavNakic-Alfirevic Je ne l'ai pas encore essayé, mais github.com/yyuu/pyenv semble prometteur. Il construit tout à partir de la source et installe chaque version dans son propre répertoire. Il semble qu'il soit davantage ciblé pour l'installation des développeurs dans leurs propres répertoires personnels, mais les versions peuvent être exécutées en tant que sudo et cibler un répertoire partagé.
Mark Evans

@MarkEvans Python n'est vraiment pas mon point fort, donc je pourrais facilement me tromper, mais pyenv ressemble à une solution pour un problème différent. Si vous remplaçiez "python" par "JDK", je ne serais certainement pas ravi de le compiler juste pour pouvoir déployer une application Java: je veux la version JDK que quelqu'un d'autre a compilée, testée, retestée et testée à nouveau avec quelle version de CentOS que j'utilise. J'aurais tendance à appliquer la même logique à Python. Cela dit, je suis sûr qu'il existe des cas d'utilisation où pyenv brille, tels que dev. (par opposition au déploiement) machines.
Tomislav Nakic-Alfirevic

28

Lorsque je rencontre des situations similaires, j'évite généralement le gestionnaire de paquets, surtout s'il serait gênant de casser quelque chose, c'est-à-dire un serveur de production. Au lieu de cela, j'irais sur Activestate et téléchargerais leur package binaire:

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

Ceci est installé en exécutant un script qui place tout dans un dossier et ne touche aucun fichier système. En fait, vous n'avez même pas besoin d'autorisations root pour le configurer. Ensuite, je change le nom du binaire en quelque chose comme apy26, ajoute ce dossier à la fin du PATH et commence le codage. Si vous installez des packages avec apy26 setup.py installou si vous utilisez virtualenv et easyinstall, vous disposez d'un environnement python tout aussi flexible que nécessaire sans toucher au standard du système python.

Modifications ... Récemment, j'ai fait du travail pour construire un binaire Python portable pour Linux qui devrait fonctionner sur n'importe quelle distribution sans dépendances externes. Cela signifie que toutes les bibliothèques partagées binaires nécessaires au module Python portable font partie de la construction, incluses dans l'archive tar et installées dans la structure de répertoires privés de Python. De cette façon, vous pouvez installer Python pour votre application sans interférer avec le système Python installé.

Mon site github a un script de construction qui a été minutieusement testé sur les installations Ubuntu Lucid 10.04 LTS à la fois 32 et 64 bits. Je l'ai aussi construit sur Debian Etch mais c'était il y a quelque temps et je ne peux pas garantir que je n'ai rien changé. Le moyen le plus simple de le faire est de mettre simplement votre choix d'Ubuntu Lucid dans une machine virtuelle, d'extraire le script avec git clone git://github.com/wavetossed/pybuild.gitpuis d'exécuter le script.

Une fois que vous l'avez construit, utilisez l'archive tar sur n'importe quelle distribution Linux récente. Il y a une petite difficulté à le déplacer vers un répertoire autre que /data1/packages/python272celui que vous devez exécuter le inclus patchelfpour définir le chemin de l'interpréteur AVANT de déplacer le répertoire. Cela affecte tous les binaires dans/data1/packages/python272/bin

Tout cela est basé sur la construction avec RUNPATH et la copie des bibliothèques partagées dépendantes. Même si le script se trouve dans plusieurs fichiers, il s'agit en fait d'un long script shell arrangé dans le style des répertoires /etc/rc.d.


4
Je ne sais pas quelle était la licence dans le passé, mais malheureusement, maintenant, elle ne vous permet pas d'utiliser ActivePython sur des serveurs externes à moins que vous n'achetiez l'édition Business ($$$). activestate.com/compare-editions
Nate

2
pour éviter de casser un serveur avec le gestionnaire de paquets, vous comptez sur les scripts de fournisseurs tiers? huh
akostadinov

26

Pas besoin de faire miam ou de créer votre propre RPM. Construire à python26partir de la source.

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

Il peut y avoir une utilisation d' erreur de dépendance

yum install gcc cc

Ajoutez le chemin d'installation ( /usr/local/bin/pythonpar défaut) à ~/.bash_profile.

Il ne cassera pas yumni aucune autre chose dont dépend python24.


1
Remarque: le compilateur AC est requis pour que cela fonctionne. Il ne semble pas que l'un d'entre eux soit livré avec CentOS 5 (du moins, le mien n'en a pas sur le PATH)
Cody S

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

24

Non c'est ça. Vous voudrez peut-être vous assurer que tous les en-têtes de bibliothèque facultatifs sont également installés pour ne pas avoir à la recompiler plus tard. Ils sont listés dans la documentation je pense.

En outre, vous pouvez l'installer même dans le chemin standard si vous le faites make altinstall. De cette façon, il ne remplacera pas votre "python" par défaut actuel.


4
wget python.org/ftp/python/2.6.6/Python-2.6.6.tgz puis ./configure les make altinstall
Olivier Refalo

12

Chris Lea fournit un référentiel YUM pour les RPM python26 qui peuvent coexister avec le 2.4 `` natif '' nécessaire à de nombreux outils d'administration sur CentOS.

Des instructions rapides qui ont fonctionné au moins pour moi:

$ 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
Cela ne fonctionnait pas sous CentOS 5.4: Aucun package python26 disponible.
Joseph Turian


3

Lorsque vous installez votre version python (dans ce cas, il s'agit de python2.6), émettez cette commande pour créer votre virtualenv:

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

2

En retard à la fête, mais l'OP aurait dû aller avec Buildout ou Virtualenv , et éviter complètement le problème.

Je travaille actuellement sur un serveur Centos, eh bien, travailler loin serait le terme approprié et je peux assurer à tout le monde que le seul moyen pour moi de refouler les larmes tout en utilisant les équivalents logiciels de lances endurcies par le feu, est de construire.


2
pouvez-vous utiliser virtualenv pour installer python2.6 alors que seul python2.4 est installé?
Collin Anderson

Certainement. Utilisez l'option --no-site-packages dans virtualenv je crois, ou construisez un python dans buildout.
chiggsy

NON, virtualenv ne traite que des modules / packages python et de leurs versions. Il doit toujours être pointé vers un binaire d'interpréteur python fonctionnel (déjà sur le système).
Jason Antman



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

pour dos qui ne savent tout simplement pas: =)


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

Téléchargez et installez 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

Téléchargez et installez Distribute for 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

Installer et utiliser virtualenv pour 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

0

J'ai désinstallé la version originale de python (2.6.6) et installé 2.7 (avec option make && make altinstall) mais quand j'ai essayé d'installer quelque chose avec yum ne fonctionnait pas.

J'ai donc résolu ce problème comme suit:

  1. # ln -s /usr/local/bin/python /usr/bin/python
  2. Téléchargez le package RPM python-2.6.6-36.el6.i686.rpm depuis http://rpm.pbone.net/index.php3/stat/4/idpl/20270470/dir/centos_6/com/python-2.6. 6-36.el6.i686.rpm.html
  3. Exécuter en tant que root rpm -Uvh python-2.6.6-36.el6.i686.rpm

Terminé


-1

Tapez les commandes suivantes sur le terminal pour installer Python 3.6 sur CentOS 7:

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

Alors fais :

$ sudo yum install python36u 

Vous pouvez également installer n'importe quelle version au lieu de 3.6 (si vous le souhaitez) en remplaçant simplement 36 par votre numéro de version.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.