Сбой Komodo IDE 7 в Ubuntu 11.10

1

Запуск Komodo IDE 7 на Ubuntu 11.10 сбой в 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

Как я могу заставить его успешно работать?

Теги:
openssl
crash
komodo

1 ответ

3
Лучший ответ

При расследовании это происходит при вызове функции в модуле _hashlib. Этот модуль является встроенным модулем в стандартной установке python Ubuntu (см. sys.builtin_module_names), поэтому _hashlib.so который существует под lib/python/lib/python2.6/lib-dynload/_hashlib.so, не является частью Ubuntu python build.

Вы можете исправить это, перекомпилировав этот модуль из стандартных источников 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 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 build найти их.
  • Это действительно работает на моей машине, но для 64-битного/другого выпуска вам могут потребоваться некоторые настройки
  • 0
    это работало для меня тоже с Ubuntu 11.10 32bit Edition благодарю Давида :)
  • 0
    Это работало для меня на двух машинах в феврале-марте, но не работает на моей новой машине с последней Ubuntu 11.10. Я получаю: «Не удалось найти необходимые биты для сборки этих модулей: _bsddb _sqlite3 _tkinter bsddb185 dbm gdbm sunaudiodev zlib Чтобы найти необходимые биты, посмотрите в файле setup.py в detect_modules () имя модуля. Не удалось собрать эти модули: crypt nis "при сборке cpython 2.6.5.
Показать ещё 3 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню