2016-11-25 31 views
0

我正在編寫使用不同glibc版本的應用程序。較低版本的rpm已經安裝在我的RHEL(6.5)盒中,但我需要RHEL(7.x)中提供的更高版本的glibc rpm。單獨rpm版本的glibc在RHEL中的應用程序

  1. 是否有可能在RHEL
  2. 安裝不同的版本相同的轉速旋轉的如果是如何通過提供絕對路徑在一個單一的應用程序中使用不同版本的rpm,或者我可以在安裝更高 版本單獨的文件夾並利用它?
ie) /opt/higherverison/glibc <file> 
    /usr/bin/glibc <file> 
+1

[單個主機上的多個glibc庫]的可能重複(http://stackoverflow.com/questions/847179/multiple-glibc-libraries-on-a-single-host) –

回答

0
  1. foo的較新版本將覆蓋foo舊版本。對於glibc,這意味着你只有新版本。這將打破一切。紅帽提供了一種名爲Software Collections(SCL)的軟件,可以讓你安裝多個RPM,這樣它們就不會發生衝突,但是沒有用於glibc的SCL。

  2. 我建議不要在RHEL 6上使用RHEL 7的glibc版本。它可能會查找RHEL 6上不可用的內容。也許可以在RHEL 6上構建RHEL 7的glibc(調整適當的標誌)一個自定義的位置和明確的鏈接?你仍然需要自己維護這個glibc版本。您可以使用RPATH使您的應用程序使用不同的libc。

如何設置自定義RPATH? This answer有一種可能的方法:

RPATH指定提供的庫所在的位置。該文件夾應該包含:libc.so.6,libdl.so.2,libgcc_s.so.1以及更多。用strace查找你的二進制文件使用哪些庫。

ld.so是提供接頭

GCC -Xlinker -rpath = /默認/路徑/到/庫-Xlinker -I /默認/路徑/到/庫/ ld.so program.c