2016-05-17 203 views
0

我正在嘗試運行在2.6.24內核上編譯的真正舊應用程序。但每當我嘗試運行的軟件,我得到了無差錯:Ubuntu無法找到glibc2.14

./deskewDeslant: /lib/libc.so.6: version `GLIBC_2.14' not found (required by ./deskewDeslant) 
./deskewDeslant: /usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.15' not found (required by ./deskewDeslant) 

我曾嘗試以下各項:

apt-get install libc6 

而且我得到的libc的最新版本已安裝的消息。我目前使用libc版本2.7。如何將版本降級到2.14?

我試着從GNU網站的源代碼編譯版本2.14沒有運氣。

如何將我的gibc降級到2.14?什麼是正確的過程?由於該程序是專門在2.6.24版本上編譯的,因此我正在運行Ubuntu Hardy Heron。

回答

1

我想運行在2.6.24內核上編譯的一個非常舊的應用程序。

內核版本無關緊要。

您的應用程序被編譯使用GLIBC-2.14(或更新版本)的系統上,所以它沒那麼老GLIBC-2.14was released on 2011-06-01)。

./deskewDeslant: /lib/libc.so.6: version 'GLIBC_2.14' not found (required by ./deskewDeslant)

上面的錯誤意味着當前的GLIBC是太舊

./deskewDeslant: /usr/lib/libstdc++.so.6: version 'GLIBCXX_3.4.15' not found (required by ./deskewDeslant)

上述錯誤意味着你libstdc++.so太舊

我目前使用libc版本2.7。如何將版本降級到2.14?

你相信版本2.72.14版本更新,但是真實的。你需要從2.7升級GLIBC2.14(或更新版本)。

一般情況下,一個給定的OS分配永遠不會升級從它最初附帶了一個GLIBC(打破舊的應用程序的風險被認爲太高)。這就是爲什麼你的apt-get install libc6什麼都不做。

因此,你的選擇是:

  1. 升級整個分佈,或
  2. 獲得編譯你的(舊)發行二進制,或者
  3. 安裝的GLIBC更新的版本,或
  4. 在非默認位置安裝GLIBC的較新版本。

選項#2是最簡單的。

選項#1可能是最好的(你會得到安全修復程序,並且你下載的其他應用程序可以直接使用)。

選項#3風險很大:除了以微妙的方式潛在地破壞現有應用程序之外,如果在更新過程中犯了錯誤,則升級系統libc是使系統無法啓動的最簡單方法。

選項#4在技術上相當涉及。你可以找到更多的細節here