2012-02-13 30 views
1

啓動期間,Ubuntu的啓動科莫多IDE 7 libcrypto.so 11.10崩潰(見this forum discussion):科莫多IDE 7分墜毀在Ubuntu 11.10

#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 

我怎樣才能得到它成功運行?

回答

3

在調查中,調用_hashlib模塊中的函數時會發生這種情況。此模塊是標準Ubuntu python安裝中的內置模塊(請參閱sys.builtin_module_names),因此lib/python/lib/python2.6/lib-dynload/_hashlib.so下的_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源代碼;你可以得到這些一些其他的方式,如果你喜歡
  • 有可能是一個更短,更簡單的方法做,你需要
  • 在我的Ubuntu 11.10這個
  • 這將構建所有的Python擴展模塊,只是一個不,有libssl.so.0.9.8,但沒有libssl.so。上面的鏈接允許Python構建找到它們。
  • 這其實作品在我的機器上,但對於64位/另一個版本中,你可能需要一些調整
+0

這與Ubuntu也爲我工作11.10 32位版本感謝的大衛:) – malko 2012-02-14 10:20:42

+0

這爲我工作在兩個機器在2月 - 3月,但它不適用於我的新機器與最新的Ubuntu 11.10。我得到:「無法找到所需的位來構建這些模塊: _bsddb _sqlite3 _tkinter bsddb185 DBM GDBM sunaudiodev zlib的 要找到所需的位,看在setup.py在detect_modules()爲模塊的名稱 。無法構建這些模塊: crypt nis「在構建cpython 2.6.5時。 – hughdbrown 2012-04-09 14:13:23

+0

@hughdbrown:我想我已經找到了一個在Ubuntu 11.10上運行的解決方案。這個問題似乎與[Ubuntu向multiarch支持轉移](https://wiki.ubuntu.com/MultiarchSpec)有關,它涉及將一堆系統文件移動到新的位置。您需要在cpython的setup.py中添加幾行內容,以便它可以找到系統庫現在的目錄。 [這是一個diff,它顯示了setup.py文件的確切更改。](http://bugs.python.org/file21465/d504ca7e0fe5.diff)(它在運行時仍會抱怨丟失的位,但_hashlib.so將繼續生成。) – 2012-04-19 04:26:52