CentOSにPython2.6をインストールする


85

CentOSを実行するシェルがあります。

私が行っているプロジェクトでは、Python 2.5以降が必要ですが、centOSは2.4にかなり依存しています。

私が読んだことから、2.5にアップグレードすると、多くのことが壊れます。

2.4とは別に2.5をインストールしたいのですが、どうすればいいのかわかりません。これまでのところ、ソースのtarballをダウンロードし、tarを解除して、./configure --prefix=/opt最終的にはそれを実行しました。私は今だけできますmake, make installか?それとももっとありますか?


8
私は個人的にCentOSをたくさん使用していましたが、RedHat / CentOSディストリビューションがいかに粗雑であるか(Python 2.4 ...)のためにUbuntuに切り替えました。あなたが政治的にジャンプをすることができるならば、それをしてください。あなたははるかに幸せになり、この種のことについてもう心配する必要はありません。
アダムネルソン

1
ソースからコンパイルしてインストールすると/usr/local(デフォルト)、問題は発生しません。または、さらに良いことに、centosをゴミ箱に移動し、debian:P
o0 '

19
え?CentOS / RHELのポイントは、長期的なサポートです。最新のディストリビューションに切り替えるオプションがある場合は、CentOSのバックグラウンドを持つ人がUbuntuに切り替えるよりも、Fedoraに切り替える方がはるかに理にかなっています。
ムハンマドアルカロウリ2010

1
明確にするために、皮肉なサイドバーはありません:はい。リストしたとおりに、新しいバージョンのPythonをソースから/ optにインストールできます。または、デフォルトで/ usr / local / {bin、lib、share、man}に入ります。これもうまく機能し、CentOS5のバージョンであるPython2.4に干渉しません。CentOS6にはPython2.6.6が付属しています。
IcarusNM 2014年

回答:


79

EPELリポジトリを使用して、Python2.6sudo yum install python26をインストールすることもできます


8
:EPEL使い方fedoraproject.org/wiki/EPEL/FAQ#howtouseを-しかし、それは32ビットx86はない場合、あなたのアーチとi386のを置き換えることを忘れないでください
rakslice

私のために働いた!別のプロジェクトでも必要だったので、とても嬉しいです!
rholmes 2011年

1
Python2.6はもはやepelではないようです。
mujimu 2014

1
@ mujimu、2.6を2.4よりもデフォルトにしたかもしれないと思います。したがって、のようなコマンドは、OSのフレーバー/バージョンによって異なるyum install python26場合がありますyum install python
James Oravec 2014

31

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実行可能ファイルは次のURLで入手できます。 /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


最後のビットをありがとう-私はちょうどpython26をインストールし、「デフォルト」(2.4)が2.6を参照するようにする方法を考えていました。シンボリックリンクを作成し、パスを調整しました。
ジェイシドリ2012年

これは明らかに機能します... 1人のユーザーにとって... python2.6を3.0などに置き換えるまで...しかし、これを行うための推奨される方法のようです。CentOSには、同時にインストールされるさまざまなパッケージのバージョンを選択して使用するツールが付属していないと思います(Java、PostgreSQL、現在はpythonの2つのバージョンに遭遇することがよくあります)、configure_python -s2.6などすべてが「魔法のように」ユーザーが何年も先のコーナーケースについて考える必要なしに、カーテンの後ろに落ちます。
Tomislav Nakic-Alfirevic 2012

その理由は、主にサーバーに使用されるエンタープライズOSであるため、CentOSでの開発が少ないためだと思います。すべてが正しく構成されると、時折セキュリティが更新されない限り、サーバーにアクセスしません。
ジョイスバブ2012

1
@ TomislavNakic-Alfirevicまだ試していませんが、github.com / yyuu / pyenvは有望に見えます。ソースからすべてを構築し、各バージョンを独自のディレクトリにインストールします。開発者が自分のホームディレクトリにインストールすることをよりターゲットにしているように見えますが、ビルドはsudoとして実行し、共有ディレクトリをターゲットにすることができます。
マーク・エバンス

@MarkEvans Pythonは本当に私の強みではないので、簡単に間違っている可能性がありますが、pyenvは別の問題の解決策のように見えます。「python」を「JDK」に置き換えた場合、Javaアプリをデプロイできるようにするためだけにコンパイルすることにわくわくすることはありません。他の誰かがコンパイル、テスト、再テスト、テストしたJDKバージョンが必要です。私が使用しているCentOSの 私は同じロジックをPythonに適用する傾向があります。そうは言っても、devのようにpyenvが輝くユースケースがあると確信しています。(展開ではなく)マシン。
Tomislav Nakic-Alfirevic 2013

28

同様の状況に遭遇したとき、特に本番サーバーなど、何かを壊すのが恥ずかしい場合は、通常、パッケージマネージャーを避けます。代わりに、Activestateに移動して、バイナリパッケージをダウンロードします。

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

これは、すべてをフォルダーに配置し、システムファイルにアクセスしないスクリプトを実行することによってインストールされます。実際、それを設定するためにroot権限さえ必要ありません。次に、バイナリの名前をapy26のような名前に変更し、そのフォルダーをPATHの最後に追加して、コーディングを開始します。apy26 setup.py installvirtualenvとeasyinstallを使用してパッケージをインストールする場合、またはvirtualenvとeasyinstallを使用する場合は、システム標準のpythonに触れることなく、必要なだけ柔軟なpython環境を使用できます。

編集...最近、外部依存関係のないディストリビューションで実行できるLinux用のポータブルPythonバイナリを構築するための作業をいくつか行いました。これは、ポータブルPythonモジュールに必要なバイナリ共有ライブラリがビルドの一部であり、tarballに含まれ、Pythonのプライベートディレクトリ構造にインストールされることを意味します。このようにして、システムにインストールされているPythonに干渉することなく、アプリケーションにPythonをインストールできます。

私のgithubサイトには、Ubuntu Lucid 10.04LTSで32ビットと64ビットの両方のインストールで徹底的にテストされたビルドスクリプトがあります。私もDebianEtchでビルドしましたが、それは少し前のことで、何かを変更していないことを保証することはできません。これを行う最も簡単な方法は、選択したUbuntu Lucidを仮想マシンに配置し、スクリプトをチェックアウトすることです。git clone git://github.com/wavetossed/pybuild.git実行することです。

ビルドしたら、最近のLinuxディストリビューションでtarballを使用します。それ以外のディレクトリに移動することには、ディレクトリを移動する前に/data1/packages/python272、インクルードpatchelfを実行してインタプリタパスを設定する必要があるという小さな問題が1つあります。これは、のすべてのバイナリに影響します/data1/packages/python272/bin

これはすべて、RUNPATHを使用してビルドし、依存する共有ライブラリをコピーすることに基づいています。スクリプトは複数のファイルにありますが、事実上、/ etc /rc.dディレクトリのスタイルで配置された1つの長いシェルスクリプトです。


4
過去のライセンスはわかりませんが、残念ながら、Business Edition($$$)を購入しない限り、外部向けサーバーでActivePythonを使用することはできません。activestate.com/compare-editions
ネイト

2
パッケージマネージャーでサーバーを壊さないようにするには、サードパーティプロバイダーのスクリプトに依存しますか?ハァッ
akostadinov 2013年

26

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


1
注:これを機能させるには、ACコンパイラが必要です。CentOS 5が付属しているようには見えません(少なくとも、私のPATHにはありません)
Cody S


24

いいえ、それだけです。後で再コンパイルする必要がないように、オプションのライブラリヘッダーもすべてインストールされていることを確認することをお勧めします。それらは私が思うドキュメントにリストされています。

また、標準パスでもインストールできますmake altinstall。そうすれば、現在のデフォルトの「python」が上書きされることはありません。


4
wget python.org/ftp/python/2.6.6/Python-2.6.6.tgz then ./configure them make altinstall
Olivier Refalo 2011年

12

Chris Leaは、CentOS上のかなりの数の管理ツールに必要な「ネイティブ」2.4と共存できるpython26RPM用のYUMリポジトリを提供します。

少なくとも私にとってはうまくいった簡単な説明:

$ 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
これはCentOS5.4では機能しませんでした:利用可能なパッケージpython26はありません。
ジョセフトゥリアン2010


3

Pythonバージョン(この場合はpython2.6)をインストールしたら、このコマンドを発行してvirtualenv:を作成します。

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

2

パーティーに後期が、OPはして行っている必要がありますビルドアウトまたはVIRTUALENV、および問題を完全にsidestepped。

私は現在Centosサーバーに取り組んでいますが、苦労するのが適切な用語であり、火で固めた槍に相当するソフトウェアを使用しながら涙をまばたきする唯一の方法はビルドアウトであると誰もが確信できます。


2
python2.4のみがインストールされている場合、virtualenvを使用してpython2.6をインストールできますか?
コリンアンダーソン

もちろん。私が信じているvirtualenvで--no-site-packagesオプションを使用するか、buildoutでpythonをビルドします。
チグジー2010年

いいえ、virtualenvはPythonモジュール/パッケージとそのバージョンのみを扱います。それでも、動作しているpythonインタープリターバイナリ(すでにシステム上にある)を指す必要があります。
ジェイソンアントマン2013年



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

知らないdosの場合:=)


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

Python3.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 for Python3.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

Python3.3用のvirtualenvをインストールして使用する

# 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

元のバージョンのpython(2.6.6)をアンインストールして2.7(オプション付きmake && make altinstall)をインストールしましたが、yumを使用して何かをインストールしようとすると機能しませんでした。

だから私はこの問題を次のように解決しました:

  1. # ln -s /usr/local/bin/python /usr/bin/python
  2. RPMパッケージpython-2.6.6-36.el6.i686.rpmをhttp://rpm.pbone.net/index.php3/stat/4/idpl/20270470/dir/centos_6/com/python-2.6からダウンロードします。 6-36.el6.i686.rpm.html
  3. rootとして実行 rpm -Uvh python-2.6.6-36.el6.i686.rpm

完了


-1

ターミナルで次のコマンドを入力して、CentOS7にPython3.6をインストールします。

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

次に行います:

$ sudo yum install python36u 

36をバージョン番号に置き換えるだけで、3.6の代わりに任意のバージョンをインストールすることもできます(必要な場合)。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.