10

Python 2.7.3 をソースからコンパイルしたいと考えています。OS は OpenSUSE 11.4 x86_64 で、すでに Python 2.7 を提供しています。最新のセキュリティパッチで2.7.3を使いたいのですが、共有システムなのでシステムのPythonインタプリタをいじることができません。

を使用してコンパイルし./configure --prefix=/opt/python --enable-sharedます。構成エラーがないので、make. ここでもエラーはありません。を実行します(このインストール プレフィックスはまだ使用されていないため、make install必要ないと思います)。make altinstall/opt/python

新しいバイナリを実行しようとすると/opt/python/bin/python、Python はそのバージョンを 2.7.3 ではなく 2.7 としてアナウンスします。これを修正する唯一の方法は、システムの を移動し/usr/lib64/libpython2.7.so.1.0、 にシンボリック リンクすること/opt/python/lib/python/libpython2.7.so.1.0です。これは機能し、Python は 2.7.3 であると発表していますが、これはシステムの Python を壊します。

/opt/pythonとにかく、独自のlibpythonを使用するなど、2つを共存させることはできますか? 実行時に LD_LIBRARY_PATH を指定する以外。コンパイル時の解決策はありますか? ありがとう。

4

1 に答える 1

24

LD_LIBRARY_PATHPython を起動するたびにランタイム ライブラリ パスを指定する必要がないようにするには、-rpathリンカー オプションを使用してビルド時に指定できます。

./configure --enable-shared --prefix=/opt/python \
            LDFLAGS=-Wl,-rpath=/opt/python/lib
于 2012-09-23T14:44:03.583 に答える