Komodo IDE 7 在 Ubuntu 11.10 上崩溃

发布于 2025-01-04 15:45:13 字数 729 浏览 2 评论 0原文

在 Ubuntu 11.10 上启动 Komodo IDE 7 在启动过程中会在 libcrypto.so 中崩溃(请参阅此论坛讨论):

#0  0xb121ffbc in EVP_PKEY_CTX_dup () from /lib/i386-linux-gnu/libcrypto.so.1.0.0
#1  0xb12121f6 in EVP_MD_CTX_copy_ex () from /lib/i386-linux-gnu/libcrypto.so.1.0.0
#2  0xb1212362 in EVP_MD_CTX_copy () from /lib/i386-linux-gnu/libcrypto.so.1.0.0
#3  0xb0e93c4d in ?? () from .../Komodo-IDE-7/lib/python/lib/python2.6/lib-dynload/_hashlib.so
#4  0xb0e93fc9 in ?? () from .../Komodo-IDE-7/lib/python/lib/python2.6/lib-dynload/_hashlib.so
#5  0xb549ba2d in PyCFunction_Call () from .../Komodo-IDE-7/lib/mozilla/libpython2.6.so

如何让它成功运行?

Starting Komodo IDE 7 on Ubuntu 11.10 crashes in libcrypto.so during startup (see this forum discussion):

#0  0xb121ffbc in EVP_PKEY_CTX_dup () from /lib/i386-linux-gnu/libcrypto.so.1.0.0
#1  0xb12121f6 in EVP_MD_CTX_copy_ex () from /lib/i386-linux-gnu/libcrypto.so.1.0.0
#2  0xb1212362 in EVP_MD_CTX_copy () from /lib/i386-linux-gnu/libcrypto.so.1.0.0
#3  0xb0e93c4d in ?? () from .../Komodo-IDE-7/lib/python/lib/python2.6/lib-dynload/_hashlib.so
#4  0xb0e93fc9 in ?? () from .../Komodo-IDE-7/lib/python/lib/python2.6/lib-dynload/_hashlib.so
#5  0xb549ba2d in PyCFunction_Call () from .../Komodo-IDE-7/lib/mozilla/libpython2.6.so

How can I get it to run successfully?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

淤浪 2025-01-11 15:45:13

经调查,在调用 _hashlib 模块中的函数时会发生这种情况。该模块是标准 Ubuntu python 安装中的内置模块(请参阅 sys.builtin_module_names ),因此 _hashlib.so 存在于 lib/python/lib/ 下python2.6/lib-dynload/_hashlib.so 不是 Ubuntu python 构建的一部分。

您可以通过从标准 Python 源重新编译该模块来解决此问题:

export KOMODO_DIR=/home/davidf/Applications/Komodo-IDE-7
hg clone http://hg.python.org/cpython
cd cpython
hg checkout v2.6.5
(
    cd $KOMODO_DIR/lib/python/lib
    # handle no libssl.so
    ln -s /lib/libssl.so.0.9.8
    ln -s ./libssl.so.0.9.8 libssl.so
    # save the original _hashlib library
    cd python2.6/lib-dynload/
    mv _hashlib.so _hashlib.so.orig
)
# cd to python src for python 2.6.5
./configure --prefix $KOMODO_DIR/lib/python/

# step here to patch setup.py as @jalefkowit describes
# ...

# build and copy result to komodo's lib-dynload directory
$KOMODO_DIR/lib/python/bin/python setup.py build_ext
cp build/lib.linux-i686-2.6/_hashlib.so $KOMODO_DIR/lib/python/lib/python2.6/lib-dynload/

注意:

  • 我实际上并没有使用上面的脚本;这是一种休闲。可能会有错误:)
  • 你需要 CPython 2.6.5 源代码;如果你愿意,你可以通过其他方式获得这些
  • 可能有一种更短、更简单的方法来做到这一点
  • 这将构建所有Python扩展模块,而不仅仅是你需要的模块
  • 在我的Ubuntu 11.10上,有一个libssl.so .0.9.8,但没有 libssl.so。上面的链接允许 Python 构建找到它们。
  • 这实际上适用于我的机器,但对于 64 位/其他版本,您可能需要一些调整

On investigation, this happens when calling a function in the _hashlib module. This module is a builtin module in the standard Ubuntu python install (see sys.builtin_module_names), so the _hashlib.so that exists under lib/python/lib/python2.6/lib-dynload/_hashlib.so is not part of the Ubuntu python build.

You can fix this by recompiling that module from the standard Python sources:

export KOMODO_DIR=/home/davidf/Applications/Komodo-IDE-7
hg clone http://hg.python.org/cpython
cd cpython
hg checkout v2.6.5
(
    cd $KOMODO_DIR/lib/python/lib
    # handle no libssl.so
    ln -s /lib/libssl.so.0.9.8
    ln -s ./libssl.so.0.9.8 libssl.so
    # save the original _hashlib library
    cd python2.6/lib-dynload/
    mv _hashlib.so _hashlib.so.orig
)
# cd to python src for python 2.6.5
./configure --prefix $KOMODO_DIR/lib/python/

# step here to patch setup.py as @jalefkowit describes
# ...

# build and copy result to komodo's lib-dynload directory
$KOMODO_DIR/lib/python/bin/python setup.py build_ext
cp build/lib.linux-i686-2.6/_hashlib.so $KOMODO_DIR/lib/python/lib/python2.6/lib-dynload/

Caveats:

  • I didn't actually use the above script; it's a recreation. There may be mistakes :)
  • You need the CPython 2.6.5 sources; you can get these some other way if you like
  • There is probably a shorter, and simpler way to do this
  • This will build all the Python extension modules, not just the one you need
  • On my Ubuntu 11.10, there's a libssl.so.0.9.8, but no libssl.so. The above linking allows the Python build to find them.
  • This actually works on my machine, but for 64-bit / another release, you may need some adjustments
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文