オフライン64ビットRHEL 6.4システムでPythonをアップグレードしているので、yumの代わりにRPMを介して実行する必要があります。ソースからnodejsをビルドできるように、Pythonを2.4.3から2.6にアップグレードしようとしています。
走るときに問題が発生しました。
rpm -Uvh python26-2.6.8-2.el5.x86_64.rpm
依存関係障害エラーが発生します。
libpython2.6.so.1.0() (64bit) is needed by python26-2.6.8-2.el5.x86_64
とにかくlibpython2.6がインストールされているものが見つかりません...
答え1
システムに含まれているPythonのバージョンを破損しようとするのは通常賢明ではありません。これらのアプリケーションは、ユーザーのために存在するのではなく、オペレーティングシステムにバンドルされているアプリケーションをサポートするためのものです。ディストリビューションの内部パイプラインのほとんどは、これらの特定のPythonパッケージに依存しています。
Python、Perl、Rubyなどの特定のバージョンが必要な場合は、次のシステムを使用してこれらのインタプリタのローカルバージョンを設定する習慣が必要です。
ピエンブ
このプロジェクトはかつて呼び出されました。Python醸造でも今はと言われていますpyenv
。インストールするには、次のようにコピーを$HOME
ディレクトリに複製する必要があります。
$ git clone git://github.com/yyuu/pyenv.git .pyenv
Cloning into .pyenv...
remote: Counting objects: 2207, done.
remote: Compressing objects: 100% (617/617), done.
remote: Total 2207 (delta 1489), reused 2172 (delta 1462)
Receiving objects: 100% (2207/2207), 358.75 KiB, done.
Resolving deltas: 100% (1489/1489), done.
pyenv
これでファイルに設定を追加します~/.bashrc
。
$ echo 'export PATH="$HOME/.pyenv/bin:$PATH"' >> .bashrc
$ echo 'eval "$(pyenv init -)"' >> .bashrc
次の使い方がわかりますpyenv
。
$ pyenv
pyenv 0.4.0-20130613-17-ge1ea64b
Usage: pyenv <command> [<args>]
Some useful pyenv commands are:
commands List all available pyenv commands
local Set or show the local application-specific Python version
global Set or show the global Python version
shell Set or show the shell-specific Python version
install Install a Python version using the python-build plugin
uninstall Uninstall a specific Python version
rehash Rehash pyenv shims (run this after installing executables)
version Show the current Python version and its origin
versions List all Python versions available to pyenv
which Display the full path to an executable
whence List all Python versions that contain the given executable
See `pyenv help <command>' for information on a specific command.
For full documentation, see: https://github.com/yyuu/pyenv#readme
利用可能なバージョンを表示できます。
$ pyenv versions
* system (set by /home/saml/.pyenv/version)
それでは、Python 3.2.5をインストールしてみましょう。
$ pyenv install 3.2.5
Downloading Python-3.2.5.tgz...
-> http://yyuu.github.io/pythons/ed8d5529d2aebc36b53f4e0a0c9e6728
Installing Python-3.2.5...
Installed Python-3.2.5 to /home/saml/.pyenv/versions/3.2.5
Downloading setuptools-0.9.5.tar.gz...
-> https://pypi.python.org/packages/source/s/setuptools/setuptools-0.9.5.tar.gz
Installing setuptools-0.9.5...
Installed setuptools-0.9.5 to /home/saml/.pyenv/versions/3.2.5
Downloading pip-1.3.1.tar.gz...
-> http://yyuu.github.io/pythons/cbb27a191cebc58997c4da8513863153
Installing pip-1.3.1...
Installed pip-1.3.1 to /home/saml/.pyenv/versions/3.2.5
新しいインストールを統合するために環境を再構築します。
$ pyenv rehash
これで利用可能な2つのバージョンが表示され、システムはまだデフォルト値(*
)です。
$ pyenv versions
* system (set by /home/saml/.pyenv/version)
3.2.5
3.2.5に切り替えてみましょう。
$ pyenv which python
/usr/bin/python
$ pyenv global 3.2.5
$ pyenv which python
/home/saml/.pyenv/versions/3.2.5/bin/python
$ pyenv versions
system
* 3.2.5 (set by /home/saml/.pyenv/version)
仮想環境と仮想環境ラッパー
これら2つのPythonモジュールは、サイトパッケージを維持するための別々のワークスペースを維持するメカニズムを提供します。 Pythonモジュールのコレクションを分離して特定のPythonアプリケーションに接続したい場合は良い選択です。使用は少し不便ですが、作業は完了です。
一つあるvirtualenvwrapperの使い方を示すスクリーンキャストしかも。 Pythonの場合は、まずを設定してvirtualenv
からvirtualenvwrapper
。
はい
$ sudo easy_install virtualenv
$ easy_install virtualenvwrapper
これで、2つのPythonモジュールがインストールされました。ここで環境を設定し、$HOME/.bashrc
ファイルに以下を追加する必要があります。
export WORKON_HOME=$HOME/.virtualenvs
source /usr/bin/virtualenvwrapper.sh
今すぐリソースを再割り当てしてください.bashrc
。
$ source ~/.bashrc
これで作業環境を一覧表示する準備が整いました。
$ workon
$
まだ一つもないので、一つを作って「temp」と呼びます。
$ mkvirtualenv temp
New python executable in temp/bin/python
Installing setuptools................done.
次に、次のように作業セットを再リストしますworkon
。
(temp)$ workon
temp
ワークスペースのプロンプトの前にプレフィックスが表示されるようにプロンプトが変更されました。今すぐ削除してください。
(temp)$ rmvirtualenv temp
Removing temp...
ERROR: You cannot remove the active environment ('temp').
Either switch to another environment, or run 'deactivate'.
このように無効にする方法はありません。プロンプトが正常に戻ります。
(temp)$ deactivate
$
今削除してみてください。
$ rmvirtualenv temp
Removing temp...
それでは、再作成してワークスペースにCDを入れてみましょう。
$ mkvirtualenv temp
New python executable in temp/bin/python
Installing setuptools................done.
(temp)$ cdvirtualenv
(temp)$ ls
bin include lib lib64
次に、「一時」ワークスペースサイトパッケージを確認してください。
$ cdsitepackages
(temp)$ pwd
/home/saml/.virtualenvs/temp/lib/python2.7/site-packages
それでは、Pythonモジュールをインストールしてみましょう。smooshy
まず、次のコマンドを使用して検索してみましょうpip
。
(temp)$ pip search smooshy
smooshy - Automatic lossless image compression
今インストールしてください:
(temp)$ pip install smooshy
Downloading/unpacking smooshy
Downloading smooshy-1.tar.gz
Running setup.py egg_info for package smooshy
Requirement already satisfied (use --upgrade to upgrade): simplejson in /usr/lib64/python2.7/site-packages (from smooshy)
Installing collected packages: smooshy
Running setup.py install for smooshy
changing mode of build/scripts-2.7/smooshy from 664 to 775
changing mode of /home/saml/.virtualenvs/temp/bin/smooshy to 775
Successfully installed smooshy
Cleaning up...
インストールされている場所を確認するには:
(temp)$ which smooshy
~/.virtualenvs/temp/bin/smooshy
答え2
ご覧のとおり、このpython26-2.6.8-2.el5.x86_64.rpm
パッケージはlibpython2.6.so.1.0()(64ビット)に依存しています。
これは次のために発生します。python26-libs-2.6.8-2.el5.x86_64.rpm
ただし、python26-libsもpython26パッケージに依存しているため、両方をインストールする必要があります。
rpm -Uvh python26-2.6.8-2.el5.x86_64.rpm python26-libs-2.6.8-2.el5.x86_64.rpm
このpython26
パッケージはシステムに付属の(2.4)パッケージと共にインストールされ、実行可能ファイルをpython
置き換えませんpython
。 python26を実行するには、スクリプト!#
またはコマンドラインで次のものを指定する必要があります。python26