2013-08-22 73 views
12

我使用Ubuntu 12.04 - 服務器,並一直獲得:沒有可用的版本信息

/usr/lib/libcrypto.so.1.0.0:沒有可用的版本信息(由/ usr/lib中需要/ libpython2.7.so.1.0)

/usr/lib/libssl.so.1.0.0:沒有可用的版本信息(由/usr/lib/libpython2.7要求。 so.1.0)

沒有任何模式的錯誤消息爲什麼。它可以像運行vi一樣簡單。文件在那裏,它們不是鏈接。

在編譯和安裝OpenLDAP之後,在學習了ldap服務器的基礎知識的同時,使用來自其站點的指令開始發生了一些事情。當然,我已經刪除了openLDAP以嘗試刪除該問題。我還重新安裝了OpenSSL和libssl1.0.0以嘗試並測試該解決方案。

任何幫助將不勝感激,谷歌一直不幸有用。

+0

它看起來像你的包管理器沒有爲/usr/lib/libcrypto.so提供適當的符號鏈接和/usr/lib/libssl.so – jww

回答

4

編譯並從源代碼安裝openssl的最新版本(openssl-1.0.1f)後,我也收到了惱人的警告消息。經過一些研究以及一些試驗和錯誤之後,我能夠針對我的特定情況解決問題。它基本上歸結爲警告消息所說的內容。從源代碼構建的庫中沒有可用的版本信息。這是Ubuntu團隊在其發行版中添加的內容。因此,解決方案是在使用openssl的Ubuntu軟件包發行版中包含的版本腳本進行修補後,重新編譯openssl源代碼。

我Google'd爲「修補程序openssl包含Ubuntu的版本信息」,碰巧找到我需要的源包在https://launchpad.net/ubuntu/+archive/primary/+files/openssl_1.0.1f-1ubuntu1.debian.tar.gz

所以,這裏是我遵循的過程:

rm -r -f -v openssl-1.0.1f (just to make sure you start fresh) 
wget http://www.openssl.org/source/openssl-1.0.1f.tar.gz 
tar -xvf openssl-1.0.1f.tar.gz 
wget https://launchpad.net/ubuntu/+archive/primary/+files/openssl_1.0.1f-1ubuntu1.debian.tar.gz 
tar -xvf openssl_1.0.1f-1ubuntu1.debian.tar.gz 
mv debian openssl_1.0.1f-1ubuntu1 (just because that's what I did) 
cd openssl-1.0.1f/ 
patch -p1 < ../openssl_1.0.1f-1ubuntu1/patches/version-script.patch 
./config 
make 
make test 
sudo make install 

現在,錯誤消息應該消失。

值得一提的是,最初我使用原始源代碼包中包含的版本腳本(來自http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/openssl_1.0.1-4ubuntu5.11.debian.tar.gz)對我的openssl-1.0.1f源代碼進行了修補。但是,我的make失敗並出現錯誤。我想這是有道理的,我需要獲得相同的版本1.0.1f。

因爲他的帖子http://ubuntuforums.org/showthread.php?t=1905963,信用卡轉到@mattcasw,這導致我走上了正確的道路。

11

我想我應該得到正確的點...

問題:libssl.so.1.0.0和libcrypto.so.1.0.0沒有版本信息可用的警告/錯誤。

我解決了它!好極了!!! (煙花應該去掉之類的東西。)

經過大量的研究,時間和精力,(花費數週時間),這是我最後落得這樣做......

在你結束了提取目錄你的openssl 1.0.1h版本的源代碼(也應該適用於其他版本。)我創建了一個名爲openssl.ld

在這個文件中把這個文件......

回答

OPENSSL_1.0.0 { 
    global: 
    *; 
}; 

保存。 現在,在...

使清潔(只是要確保我們開始新鮮。)

現在到了真正超乎想象的一部分...

./config --prefix=/usr/local --openssldir=/usr/local/openssl shared -Wl,--version-script=openssl.ld -Wl,-Bsymbolic-functions 

然後...

make 

make test 

make install 

ldconfig 

而且應該這樣做。 (非常簡單,無需修補)

我已將此解決方案應用於Debian Wheezy 32位和64位版本。並進行了觀察。 64位版本自動默認爲在/ usr/local/lib目錄中創建的新libssl.so.1.0.0和libcrypto.so.1.0.0文件。 32位版本不。這就是爲什麼我一開始以爲Debian Wheezy的32位版本沒有遇到這個問題,但是一旦你獲得32位版本,就可以在/ usr/local/lib目錄下使用新的openssl庫。

使用ldd命令測試二進制文件正在使用的庫是非常寶貴的。

祝您有愉快的一天。

E.多德先生

+2

它的偉大工程!。謝謝。順便說一句,我使用了版本腳本的絕對路徑。例如,--version-script =/home/userid/openssl/openssl.ld – jpark7ca

相關問題