Installieren Sie Python 2.6 in CentOS

85

Ich habe eine Shell, die CentOS ausführt.

Für ein Projekt, das ich mache, brauche ich Python 2.5+, aber centOS ist ziemlich abhängig von 2.4.

Nach dem, was ich gelesen habe, werden einige Dinge kaputt gehen, wenn Sie auf 2.5 aktualisieren.

Ich möchte 2.5 getrennt von 2.4 installieren, bin mir aber nicht sicher, wie ich das machen soll. Bisher habe ich den Quell-Tarball heruntergeladen, ihn entkernt und einen gemacht ./configure --prefix=/opt, bei dem ich möchte, dass er endet. Kann ich jetzt einfach make, make install? Oder gibt es noch mehr?

tehryan
quelle
8
Ich persönlich habe viel CentOS verwendet und bin auf Ubuntu umgestiegen, weil die RedHat / CentOS-Distributionen (Python 2.4 ...) so mürrisch sind. Wenn Sie den Sprung politisch schaffen können, tun Sie es. Sie werden viel glücklicher sein und müssen sich nicht mehr um solche Dinge kümmern.
Adam Nelson
1
Das Kompilieren aus dem Quellcode und das Installieren in /usr/local(Standardeinstellung) sollte keine Probleme verursachen. Oder, noch besser, Centos wegwerfen und debian installieren: P
o0 '.
19
Huh? Der Punkt von CentOS / RHEL ist die langfristige Unterstützung. Wenn es eine Option gibt, zur neuesten Distribution zu wechseln, ist ein Wechsel zu Fedora viel sinnvoller als ein Wechsel zu Ubuntu für jemanden mit CentOS-Hintergrund.
Muhammad Alkarouri
1
Nur um klar zu sein, ohne sarkastische Seitenleisten: JA. Sie können eine neuere Version von Python von der Quelle in / opt installieren, genau wie Sie es aufgelistet haben. Oder es geht standardmäßig in / usr / local / {bin, lib, share, man}, was ebenfalls hervorragend funktioniert und Python 2.4 nicht beeinträchtigt. Dies ist NOCH die Version in CentOS 5. CentOS 6 wird mit Python 2.6.6 geliefert.
IcarusNM

Antworten:

79

Sie können auch das EPEL-Repository verwenden und dann sudo yum install python26Python 2.6 installieren

Boerre
quelle
8
Verwendung von EPEL: fedoraproject.org/wiki/EPEL/FAQ#howtouse - Aber denken Sie daran, den i386 durch Ihren Bogen zu ersetzen, wenn er nicht 32-Bit x86 ist
Rakslice
Hat für mich gearbeitet! Ich brauchte diese auch für ein anderes Projekt, also bin ich doppelt glücklich!
Rholmes
1
Python 2.6 scheint nicht mehr in Epel zu sein.
Mujimu
1
@ Mujimu, ich denke, sie könnten 2.6 zum Standard über 2.4 gemacht haben. Befehle wie yum install python26können also nur yum install pythonvon der Betriebssystemversion abhängen.
James Oravec
31

Versuchen Sie es mit 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

Die ausführbare Python-Datei ist verfügbar unter /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

Jetzt wird der pythonBefehl ausgeführtpython 2.6

Joyce Babu
quelle
Vielen Dank für das letzte Bit - ich habe gerade python26 installiert und mich gefragt, wie ich die 'Standard' (2.4) auf die 2.6 verweisen kann. Das Erstellen eines Symlinks und das Anpassen des Pfads haben es geschafft.
Jay Sidri
Dies wird natürlich funktionieren ... für einen Benutzer ... bis man Python2.6 durch 3.0 oder was auch immer ersetzt ... aber es scheint der empfohlene Weg zu sein, dies zu erreichen. Ich habe Probleme zu glauben, dass CentOS kein Tool zur Auswahl der Version verschiedener gleichzeitig installierter Pakete enthält (ich stoße häufig auf zwei Versionen von Java, PostgreSQL und jetzt Python), so etwas wie configure_python -s 2.6 und alles "magisch". fällt hinter die Vorhänge, ohne dass der Benutzer in Zukunft über Eckfälle nachdenken muss.
Tomislav Nakic-Alfirevic
Ich denke, der Grund dafür ist, dass die Leute als Unternehmensbetriebssystem, das hauptsächlich für Server verwendet wird, unter Cent-Betriebssystemen nicht viel entwickeln. Sobald alles richtig konfiguriert ist, berühren sie den Server nur für gelegentliche Sicherheitsupdates.
Joyce Babu
1
@ TomislavNakic-Alfirevic Ich habe es noch nicht ausprobiert, aber github.com/yyuu/pyenv sieht vielversprechend aus. Es erstellt alles aus dem Quellcode und installiert jede Version in einem eigenen Verzeichnis. Es sieht so aus, als ob es eher für Entwickler gedacht ist, die in ihren eigenen Home-Verzeichnissen installieren, aber die Builds können als sudo ausgeführt werden und auf ein freigegebenes Verzeichnis abzielen.
Mark Evans
@ MarkEvans Python ist wirklich nicht meine Stärke, daher könnte ich mich leicht irren, aber pyenv scheint eine Lösung für ein anderes Problem zu sein. Wenn Sie "Python" durch "JDK" ersetzen würden, würde ich mich definitiv nicht über das Kompilieren freuen, nur um eine Java-App bereitstellen zu können: Ich möchte die JDK-Version, die jemand anderes kompiliert, getestet, erneut getestet und mit welcher Version auch immer erneut getestet hat von CentOS benutze ich. Ich würde dazu neigen, die gleiche Logik auf Python anzuwenden. Trotzdem bin ich mir sicher, dass es Anwendungsfälle gibt, in denen Pyenv glänzt, wie z. B. dev. (im Gegensatz zur Bereitstellung) Maschinen.
Tomislav Nakic-Alfirevic
28

Wenn ich auf ähnliche Situationen gestoßen bin, vermeide ich im Allgemeinen den Paketmanager, insbesondere wenn es peinlich wäre, etwas zu beschädigen, dh einen Produktionsserver. Stattdessen würde ich zu Activestate gehen und ihr Binärpaket herunterladen:

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

Dies wird installiert, indem ein Skript ausgeführt wird, das alles in einem Ordner ablegt und keine Systemdateien berührt. Tatsächlich benötigen Sie nicht einmal Root-Berechtigungen, um es einzurichten. Dann ändere ich den Namen der Binärdatei in apy26, füge diesen Ordner am Ende des PFADS hinzu und beginne mit der Codierung. Wenn Sie Pakete mit apy26 setup.py installvirtualenv und easyinstall installieren oder verwenden, verfügen Sie über eine ebenso flexible Python-Umgebung wie erforderlich, ohne die Systemstandard-Python zu berühren.

Änderungen ... Vor kurzem habe ich einige Arbeiten durchgeführt, um eine tragbare Python-Binärdatei für Linux zu erstellen, die auf jeder Distribution ohne externe Abhängigkeiten ausgeführt werden sollte. Dies bedeutet, dass alle vom tragbaren Python-Modul benötigten binären gemeinsam genutzten Bibliotheken Teil des Builds sind, im Tarball enthalten und in der privaten Verzeichnisstruktur von Python installiert sind. Auf diese Weise können Sie Python für Ihre Anwendung installieren, ohne das vom System installierte Python zu beeinträchtigen.

Meine Github-Site verfügt über ein Build-Skript, das unter 32- und 64-Bit-Installationen von Ubuntu Lucid 10.04 LTS gründlich getestet wurde. Ich habe es auch auf Debian Etch aufgebaut, aber das ist eine Weile her und ich kann nicht garantieren, dass ich nichts geändert habe. Der einfachste Weg, dies zu tun, besteht darin, einfach Ubuntu Lucid Ihrer Wahl in eine virtuelle Maschine zu stecken, das Skript mit auszuchecken git clone git://github.com/wavetossed/pybuild.gitund dann das Skript auszuführen.

Sobald Sie es erstellt haben, verwenden Sie den Tarball in jeder aktuellen Linux-Distribution. Es gibt eine kleine Falte beim Verschieben in ein anderes Verzeichnis als /data1/packages/python272das, dass Sie das enthaltene ausführen müssen patchelf, um den Interpreterpfad festzulegen, bevor Sie das Verzeichnis verschieben. Dies betrifft alle Binärdateien in/data1/packages/python272/bin

All dies basiert auf dem Erstellen mit RUNPATH und dem Kopieren der abhängigen gemeinsam genutzten Bibliotheken. Obwohl sich das Skript in mehreren Dateien befindet, handelt es sich effektiv um ein langes Shell-Skript, das im Stil von /etc/rc.d-Verzeichnissen angeordnet ist.

Michael Dillon
quelle
4
Ich weiß nicht, wie die Lizenz in der Vergangenheit war, aber jetzt können Sie ActivePython leider nicht auf externen Servern verwenden, es sei denn, Sie kaufen die Business Edition ($$$). activestate.com/compare-editions
Nate
2
Um zu vermeiden, dass ein Server mit dem Paketmanager beschädigt wird, verlassen Sie sich auf die Skripte von Drittanbietern. huh
akostadinov
26

Sie müssen weder lecker noch Ihre eigene Drehzahl einstellen. python26Aus der Quelle erstellen .

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

Es kann sein , Abhängigkeitsfehler Verwendung

yum install gcc cc

Fügen Sie den Installationspfad ( /usr/local/bin/pythonstandardmäßig) zu hinzu ~/.bash_profile.

Es wird nicht brechen yumoder andere Dinge, die davon abhängen python24.

Rahul Arora
quelle
1
Hinweis: Damit dies funktioniert, ist ein AC-Compiler erforderlich. Es sieht nicht so aus, als ob man CentOS 5 auf Lager hat (zumindest hat meins keinen auf dem PATH)
Cody S
./configure && make && make alt install ( toomuchdata.com/2014/02/16/how-to-install-python-on-centos )
luismartingil
24

Nein das war's. Möglicherweise möchten Sie sicherstellen, dass auch alle optionalen Bibliotheksheader installiert sind, damit Sie sie später nicht neu kompilieren müssen. Sie sind in der Dokumentation aufgeführt, denke ich.

Sie können es auch im Standardpfad installieren, wenn Sie dies tun make altinstall. Auf diese Weise wird Ihre aktuelle Standard- "Python" nicht überschrieben.

Lennart Regebro
quelle
4
wget python.org/ftp/python/2.6.6/Python-2.6.6.tgz dann ./configure sie machen altinstall
Olivier Refalo
12

Chris Lea bietet ein YUM-Repository für Python26-RPMs, das mit dem 'nativen' 2.4 koexistieren kann, das für einige Admin-Tools unter CentOS benötigt wird.

Schnelle Anweisungen, die zumindest für mich funktionierten:

$ 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
Kimvais
quelle
3
Dies funktionierte nicht unter CentOS 5.4: Kein Paket python26 verfügbar.
Joseph Turian
3

Wenn Sie Ihre Python-Version installieren (in diesem Fall ist es Python2.6), geben Sie diesen Befehl ein, um Folgendes zu erstellen virtualenv:

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

Spät zur Party, aber das OP hätte mit Buildout oder Virtualenv gehen und das Problem komplett umgehen sollen.

Ich arbeite derzeit an einem Centos-Server. Nun, es wäre der richtige Begriff, sich abzumühen, und ich kann jedem versichern, dass die einzige Möglichkeit, die Tränen zurückzublinzeln, während ich die Software-Äquivalente feuergehärteter Speere verwende, der Aufbau ist.

kichernd
quelle
2
Können Sie virtualenv verwenden, um python2.6 zu installieren, wenn nur python2.4 installiert ist?
Collin Anderson
Bestimmt. Verwenden Sie die Option --no-site-packages in virtualenv, glaube ich, oder erstellen Sie eine Python in buildout.
Chiggsy
NEIN, virtualenv befasst sich nur mit Python-Modulen / -Paketen und deren Versionen. Es muss immer noch auf eine funktionierende Python-Interpreter-Binärdatei hingewiesen werden (bereits auf dem System).
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

für Dos, die es einfach nicht wissen: =)

Günstiges VPN
quelle
1
# yum groupinstall "Development tools"
# yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel

Laden Sie Python 3.3.0 herunter und installieren Sie es

# 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

Laden Sie Distribute for Python 3.3 herunter und installieren Sie es

# 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

Installieren und verwenden Sie virtualenv für 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
Moddasir
quelle
0

Ich habe die Originalversion von Python (2.6.6) deinstalliert und 2.7 (mit Option make && make altinstall) installiert, aber als ich versuchte, etwas mit yum zu installieren, funktionierte es nicht.

Also habe ich dieses Problem wie folgt gelöst:

  1. # ln -s /usr/local/bin/python /usr/bin/python
  2. Laden Sie das RPM-Paket python-2.6.6-36.el6.i686.rpm von http://rpm.pbone.net/index.php3/stat/4/idpl/20270470/dir/centos_6/com/python-2.6 herunter . 6-36.el6.i686.rpm.html
  3. Als root ausführen rpm -Uvh python-2.6.6-36.el6.i686.rpm

Getan

user2544607
quelle
-1

Geben Sie die folgenden Befehle auf dem Terminal ein, um Python 3.6 unter CentOS 7 zu installieren:

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

Dann mach :

$ sudo yum install python36u 

Sie können auch eine beliebige Version anstelle von 3.6 installieren (wenn Sie möchten), indem Sie einfach 36 durch Ihre Versionsnummer ersetzen.

Ayush Kumar Sharma
quelle