1

我正在尝试在 64 位 centos 5.6 和/或 rhel 5.6 上运行 m2crypto。我已经编译了 python 2.6 并放在一个单独的目录中(在 centos/rhel 上是必需的)。我已经尝试针对内置的 openssl 0.9.8e 编译 m2crypto 以及手动编译的 0.9.8e,并且行为是相同的。我什至尝试过 epel 的 python26 和 python26-m2crypto。它也会崩溃。

[root@ip-10-172-10-135 ~]# /usr/local/bin/python m2test.py
分段故障

代码是:

from M2Crypto import EVP

file = './foo'
cert_priv_key = EVP.load_key(file)

密钥 foo(使用 openssl genrsa 生成,用于此测试):

-----开始 RSA 私钥-----
MIIBOgIBAAJBAK/y+9J2tnTq0ZhesUV2BjtbY2ND+ZBsIPMACUCFGTbMS59JJ05e
0s2WVqb7ljvm/KsWtJ9qoqnljeaX64E9llECAwEAAQJABZOA0Zm7jJcIj3ioy5fC
+MybqMC1vxL+NFVS9b2CIA9p/f/F/FAZtSOL/+FvvccxnhNogB+J4VMXTbbEURn0
5QIhANceLguDtazhDyjj+tVyIvGrkOfPEUs3lNWpiVABYea7AiEA0WMvE+SIMzug
Tj+PSDf2puHQqvoBFz9qJ+5pcT1EVGMCIHOMx4jx162kOqNpSnxK0dBkqvKJfK2d
jnnylkp+Y5svAiBbH4f4Z0eQDvXnt796VWiRHcr67YwV+vIO6LGYp2oaMwIhAKBc
ig+JAHsT9R5Gq9TZ67YcdfI4LHFdswXw/e7eBCs4
-----结束 RSA 私钥-----

同样的测试适用于 32 位(当然我们的应用程序经常使用它)。也许我用错误的 64 位选项编译了 python 或 openssl。两者都启用并安装了共享库,添加到 ldconfig 等。

有人有任何提示吗?有人在 64 位上成功运行 python26+m2crypto 吗?

4

2 回答 2

2

原来这是我用来编译 m2crypto 的 swig 版本的问题。我使用的是 swig-1.3.29-2.el5 顺序的东西。升级到最新的 swig 并重新编译 m2crypto 可以解决这个问题。请参阅https://bugzilla.redhat.com/show_bug.cgi?id=707676

于 2011-11-09T17:24:03.527 回答
0

对于 Centos5,我做了以下工作:

cd /tmp/
mkdir rpmbuild
cd rpmbuild/
wget http://downloads.sourceforge.net/project/swig/swig/swig-1.3.40/swig-1.3.40.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fswig%2Ffiles%2Fswig%2Fswig-1.3.40%2F&ts=1356897393&use_mirror=ignum
tar xzvf swig-1.3.40.tar.gz
cd swig-1.3.40
./configure
make
make install
yum info swig
/usr/local/bin/swig -version
mv /usr/bin/swig /usr/bin/swig-1.3.29
cd /usr/bin/
ln -s /usr/local/bin/swig

然后在下一步中输入我的 virtualenv 目录,激活它,从站点包中删除所有 M2crypto-eggs。然后通过 yum 下载 m2crypto 源,解压,进入目录,执行./fedora_setup.py. 而已。完毕。

最新的 Centos5 更新没有出现依赖问题。

于 2012-12-30T20:50:51.230 回答