Ich habe eine Shell, die CentOS betreibt.
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, wird eine Reihe von Dingen kaputt gehen, wenn Sie ein Upgrade auf 2.5 durchführen.
Ich möchte 2.5 separat von 2.4 installieren, aber ich bin mir nicht sicher, wie es geht. Bis jetzt habe ich den Quell-Tarball heruntergeladen, entpackt und einen ./configure --prefix=/opt
gemacht. Dort möchte ich, dass er endet. Kann ich jetzt nur noch make, make install
? Oder gibt es noch mehr?
Sie können auch das EPEL-Repository verwenden und dann Sudo yum install python26
zur Installation von Python 2.6 ausführen
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 unter /usr/bin/python26
verfügbar.
mkdir -p ~/bin
ln -s /usr/bin/python26 ~/bin/python
export PATH=~/bin:$PATH # Append this to your ~/.bash_profile for persistence
Der Befehl python
führt nun python 2.6
aus.
Wenn ich in ähnliche Situationen geraten bin, vermeide ich generell den Paketmanager, insbesondere wenn es peinlich wäre, etwas kaputtzumachen, d. H. Einen Produktionsserver. Stattdessen würde ich zu Activestate gehen und ihr Binärpaket herunterladen:
https://www.activestate.com/activepython/downloads/
Dies wird durch Ausführen eines Skripts installiert, 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 etwas wie apy26, füge den Ordner am Ende des PFADs hinzu und starte die Codierung. Wenn Sie Pakete mit apy26 setup.py install
installieren oder wenn Sie virtualenv und easyinstall verwenden, haben Sie eine Python-Umgebung genauso flexibel, wie Sie benötigen, ohne den Systemstandard Python zu berühren.
Bearbeitungen ....__ In letzter Zeit habe ich einige Arbeit beim Erstellen einer portablen Python-Binärdatei für Linux durchgeführt, die auf einer beliebigen Distribution ohne externe Abhängigkeiten laufen sollte. Dies bedeutet, dass alle gemeinsam genutzten binären Bibliotheken, die vom tragbaren Python-Modul benötigt werden, Bestandteil 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 installierte Python-System zu beeinträchtigen.
Meine github-Site hat ein Build-Skript, das auf Ubuntu Lucid 10.04 LTS sowohl 32- als auch 64-Bit-Installationen gründlich getestet wurde. Ich habe es auch auf Debian Etch aufgebaut, aber das war vor einiger Zeit und ich kann nicht garantieren, dass ich nichts geändert habe. Der einfachste Weg, dies zu tun, besteht darin, Ubuntu Lucid einfach in eine virtuelle Maschine zu legen, das Skript mit git clone git://github.com/wavetossed/pybuild.git
auszuchecken und dann das Skript auszuführen.
Sobald Sie es erstellt haben, können Sie den Tarball für alle aktuellen Linux-Distributionen verwenden. Es gibt eine kleine Falte beim Verschieben in ein anderes Verzeichnis als /data1/packages/python272
. Dies bedeutet, dass Sie die enthaltene patchelf
ausführen müssen, 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 praktisch um ein langes Shell-Skript, das im Stil von /etc/rc.d-Verzeichnissen angeordnet ist.
Keine Notwendigkeit, Yum zu machen oder eigene RPM zu erstellen. Erstellen Sie python26
von der Quelle.
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 einen Abhängigkeitsfehler use geben
yum install gcc cc
Fügen Sie den Installationspfad (standardmäßig /usr/local/bin/python
) zu ~/.bash_profile
hinzu.
yum
oder andere Dinge, die von python24
abhängig sind, werden nicht beschädigt.
Nein das war's. Möglicherweise möchten Sie auch sicherstellen, dass alle optionalen Library-Header installiert sind, damit Sie diese später nicht erneut kompilieren müssen. Sie sind in der Dokumentation aufgeführt, denke ich.
Sie können es auch im Standardpfad installieren, wenn Sie make altinstall
ausführen. Auf diese Weise wird der aktuelle Standard "Python" nicht überschrieben.
Chris Lea bietet ein YUM-Repository für Python26-RPMs, das zusammen mit dem 'nativen' 2.4 existieren kann, das für einige Verwaltungstools auf 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
Wenn Sie Ihre Python-Version installieren (in diesem Fall ist es Python2.6), geben Sie diesen Befehl ein, um Ihre virtualenv
zu erstellen:
virtualenv -p /usr/bin/python2.6 /your/virtualenv/path/here/
Wenn Sie es sich selbst erleichtern möchten, gibt es CentOS-RPMs für neue Python-Versionen, die im Netz schweben. Z.B. sehen:
Spät zur Party, aber das OP sollte mit Buildout oder Virtualenv gegangen sein und das Problem komplett umgangen haben.
Ich arbeite derzeit an einem Centos-Server. Nun, es wäre ein richtiger Begriff, wegzuarbeiten, und ich kann jedem versichern, dass ich nur die Tränen zurückhalten kann, während ich die Software-Äquivalente feuergehärteter Speere verwende.
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 einfach nicht wissen: =)
sie können immer Ihr eigenes RPM erstellen:
http://www.grenadepod.com/2009/12/26/building-python-2-6-4-rpm-for-centos-5-4/
Fehlende Abhängigkeit: libffi.so.5 ist hier:
# yum groupinstall "Development tools"
# yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel
Python 3.3.0 herunterladen und installieren
# 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 for Python 3.3 herunterladen und installieren
# 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 für Python 3.3 installieren und verwenden
# 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
Geben Sie auf dem Terminal die folgenden Befehle 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.
Ich habe die ursprüngliche Version von Python (2.6.6) deinstalliert und 2.7 installiert (mit der Option make && make altinstall
), aber als ich etwas mit yum installierte, funktionierte es nicht.
Also habe ich dieses Problem wie folgt gelöst:
# ln -s /usr/local/bin/python /usr/bin/python
rpm -Uvh python-2.6.6-36.el6.i686.rpm
Erledigt