2015-01-31 936 views
10

我在ubuntu上安裝了glibc 2.19版本。我還想在我的機器上安裝2.3.4版本和2.19。如何安裝多個版本的glibc?

默認情況下,所有的程序應該使用2.19,但只有特定的程序應該使用2.3.4。

的兩個問題是:

  1. 我應該如何安裝2.3.4在特定的位置,說/usr/glibc2.3.4?
  2. 我應該如何指定特定程序才能使用2.3.4版本?
+2

訪問此:http://stackoverflow.com/questions/847179/multiple-glibc-libraries-on-a-single-host,可能會幫助你 – 2015-02-01 04:48:07

+4

誰標記爲「一般計算幫助」需要重新閱讀網站關於什麼是關閉/關於主題的指南。這是詢問關於glibc - 一個編程庫,它使問題在主題**中變成**。 – Qix 2015-02-01 04:55:13

+0

@GauravDave:謝謝你的指針。我在發佈這個問題之前看過你提到的那篇文章。它討論如何將exe與非默認版本的glibc鏈接起來。這部分回答了我的第二個問題,但不完全是因爲我有許多通過許多makefile構建的exes。根據提到的文章的解決方案,我將不得不修改這些許多makefile以指定--rpath和--dynamic-linker選項。我想知道是否存在更好的解決方案。第一個問題也沒有回答,即如何安裝不同版本的glibc以與默認版本共存。 – UnSat 2015-02-02 16:01:36

回答

1

如果你只是想從glibc的你可以簡單地使用LD_LIBRARY_PATH的其他版本的動態庫。但是如果你想完全使用另一個版本,你需要對其他版本進行編譯以獲得靜態部分。你也可能想要編譯其他版本的glibc以獲得所有的硬編碼路徑,指向你的安裝目錄來加載數據文件和插件(對於NSS和gconv)。使用--prefix=/usr/glibc2.3.4還會將動態加載器的soname設置爲/usr/glibc2.3.4/lib/ld-linux.so.2(或類似取決於您的體系結構的內容),該加載器將被硬編碼到與之鏈接的每個程序中。

1
  1. 提取裏面/opt第二個版本。
  2. 使用LD_LIBRARY_PATH首先在/opt內查找庫。