Ubuntu 12.04には、デフォルトでpython v 2.7.3
が付属しています。 v 2.7.5
にアップグレードしたい。 この質問 にある指示を試しました。
Sudo apt-get install build-essential
Sudo apt-get install libreadline-dev libncursesw5-dev libssl-dev libsqlite3-dev tk-dev libgdbm-dev libc6-dev libbz2-dev
cd ~/Downloads/
wget http://python.org/ftp/python/2.7.5/Python-2.7.5.tgz
tar -xvf Python-2.7.5.tgz
cd Python-2.7.5
./configure
make
Sudo make altinstall
最後のコマンドはエラーで失敗します:
...
Compiling /usr/local/lib/python2.7/xmlrpclib.py ...
Compiling /usr/local/lib/python2.7/zipfile.py ...
make: *** [libinstall] Error 1
このアップグレードを行うにはどうすればよいですか?
もちろん、ソースからインストールすることもできますが、いくつかの理由から、Ubuntuシステムのpythonパッケージをソースからアップグレードするのをためらいます。
そうすると、ソースから直接コンパイルすることでシステムが壊れる可能性があります(UbuntuがどのようにPythonパッケージビルドをカスタマイズするか正確にはわかりません)。
私は、mightリポジトリからモジュールを使用する際に問題が発生することを心配しています。
アクティブに見える PPA があります(2.7.xトレインは今年の4月に最後にビルドされました)が、PPAにはまだ2.7.5ビルドがありません。メンテナーにpingを行い、将来のビルドの計画と、2.7.5のビルドを含めるかどうかを確認することをお勧めします。可能であれば、ソースからのインストールよりもこの方法をお勧めします。新しいソフトウェアと同様に、まずテストシステムでこれを構築することをお勧めします。
別のオプションは、サンドボックス(pyenv
)を使用して、テストされていない新しいソフトウェアパッケージを実行することです。システムに直接インストールすると、マシンの動作に悪影響を与える可能性があります。
パッケージ pyenv を使用すると、マシンにインストールされているメインPythonパッケージに影響を与えることなく、システムにPythonバージョンをインストールできます(再度:システムは現在インストールされているPythonのバージョンに依存しており、アップグレードするとシステムが破損する可能性があります)。以前は、システムからpythonパッケージを分離するために Pythonbrew が推奨されていましたが、それは非推奨になり、pyenv
パッケージに置き換えられました。
pyenv
パッケージは、次の機能を提供します。
Pyenvを〜/ .pyenvにチェックアウトします。
git clone git://github.com/yyuu/pyenv.git .pyenv
Pyenvコマンドラインユーティリティにアクセスするために〜/ .pyenv/binを$ PATHに追加します。
echo 'export PATH="$HOME/.pyenv/bin:$PATH"' >> ~/.bash_profile
Zsh注:~/.zshenv
の代わりに~/.bash_profile
ファイルを変更します。
シェルにpyenv initを追加して、シムと自動補完を有効にします。
echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
Zsh注:~/.zshenv
の代わりに~/.bash_profile
ファイルを変更します。
シェルを再起動して、パスの変更を有効にします。これで、pyenvの使用を開始できます。
exec $Shell
Pythonバージョンを〜/ .pyenv/versionsにインストールします。たとえば、Python 2.7.5をインストールするには、ソースをダウンロードして展開し、次を実行します。
pyenv install 2.7.5
注ソースからビルドする構成オプションを渡す必要がある場合は、CONFIGURE_OPTS環境変数を使用してください。
Shimバイナリを再構築します。これは、新しいPythonバイナリをインストールするとき(たとえば、新しいPythonバージョンをインストールするとき、またはバイナリを提供するパッケージをインストールするとき)に行う必要があります。
pyenv rehash