私はこれに一日のほとんどを費やしました、そしてそれは私を絶対に狂気に駆り立てています。私が使用した他のすべてのUnixでは、これは公園を散歩することですが、SLES11は私を唖然とさせます。
SLES 1164ビットでZopeをビルドする必要があります。
Linux <name> 2.6.27.45-0.1-default #1 SMP 2010-02-22 16:49:47 +0100 x86_64 x86_64 x86_64 GNU/Linux
最初にYaSTをインストールしたPython 2.6を使用しようとしました。python-devel、libjpeg-devel、readline-devel、libopenssl-devel、libz2-devel、zlib-develもインストールしました、およびlibgcrypt-devel。
グローバルなpython2.6には多くの問題があり、使用すると/ etc/pythonstartで実行されるようですが、これは役に立ちません。しかし、私が得るエラーはこれです:
Getting distribution for 'Zope2==2.12.3'.
src/AccessControl/cAccessControl.c:596: warning: initialization from incompatible pointer type
src/AccessControl/cAccessControl.c:598: warning: ‘intargfunc’ is deprecated
src/AccessControl/cAccessControl.c:598: warning: initialization from incompatible pointer type
src/AccessControl/cAccessControl.c:599: warning: ‘intargfunc’ is deprecated
src/AccessControl/cAccessControl.c:599: warning: initialization from incompatible pointer type
src/AccessControl/cAccessControl.c:600: warning: ‘intintargfunc’ is deprecated
src/AccessControl/cAccessControl.c:600: warning: initialization from incompatible pointer type
src/AccessControl/cAccessControl.c:601: warning: initialization from incompatible pointer type
src/AccessControl/cAccessControl.c:602: warning: initialization from incompatible pointer type
src/AccessControl/cAccessControl.c:606: warning: ‘intargfunc’ is deprecated
src/AccessControl/cAccessControl.c:606: warning: initialization from incompatible pointer type
/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/bin/ld: skipping incompatible /usr/lib/libpython2.6.so when searching for -lpython2.6
/usr/lib64/gcc/x86_64-suse-linux/4.3/../../../../x86_64-suse-linux/bin/ld: cannot find -lpython2.6
collect2: ld returned 1 exit status
error: Setup script exited with error: command 'gcc' failed with exit status 1
An error occured when trying to install Zope2 2.12.3. Look above this message for any errors that were output by easy_install.
ここで「互換性がない」とは何を指しているのかわかりません。私の推測ではハードウェアアーキテクチャですが、上記のステートメントの内容と何が互換性がないのかわかりません。
以前にシステムにインストールされたPythonで問題が発生したことがあるので、自分でコンパイルして(したがって、上記の-develパッケージのリスト)、Python 2.6 tarballをダウンロードして実行します:
./configure --disable-tk --prefix=${HOME}/python
make
make install
これはインストールされますが、システム全体のライブラリが見つからないようです。通訳セッションの例は次のとおりです。
Python 2.6.5 (r265:79063, Mar 29 2010, 17:04:12)
[GCC 4.3.2 [gcc-4_3-branch revision 141291]] on linux2
Type "help", "copyright", "credits" or "license" for more information.
Traceback (most recent call last):
File "/etc/pythonstart", line 7, in <module>
import readline
ImportError: No module named readline
>>> from hashlib import md5
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/osc/python-2.6/lib/python2.6/hashlib.py", line 136, in <module>
md5 = __get_builtin_constructor('md5')
File "/home/osc/python-2.6/lib/python2.6/hashlib.py", line 63, in __get_builtin_constructor
import _md5
ImportError: No module named _md5
Readlineとhashlib(libgrypt経由)の両方をインストールする必要があり、関連する-develパッケージもインストールされます。 UbuntuまたはOSXでは、これは問題なく機能します。 SuSEでは、運がありません。
どんな助けでも大歓迎です!
マーティン
非常に多くの苦痛の後、欠けていた部分はこれでした:/usr/lib64/libpython2.6.soが欠けていました。 /usr/lib64/libpython2.6.so.1.0へのシンボリックリンクである必要がありますが、どういうわけか失われたか、インストールされませんでした。
カスタムビルドのpythonは、特定のライブラリ(libgcryptoやlibopensslなど)を見つけることができませんでしたが、SuSEが提供するライブラリを使用してpython 、virtualenv --no-site-packagesと組み合わせて、元の環境を取得します。
助けてくれたすべての人、特に.soシンボリックリンクのことを説明してくれたIRCのWichertに感謝します。;-)