1.glibc簡介
libc是GNU發佈的libc庫,即c運行庫。glibc是linux系統中最底層的api,幾乎其它任何運行庫都會依賴於glibc。glibc除了封裝linux操作系統所提供的系統服務外,它本身也提供了許多其它一些必要功能服務的實現。
2.glibc升級及考量
Centos 爲了穩定使用的glibc版本通常比較低,而有些程序需要依賴更新的版本。但是,升級glibc需要慎重,因爲升級失敗後可能會導致系統不能正常使用。
如果升級glibc到一個太新的版本,可能會影響CentOS的運行。因此,如果遇到因CentOS中glibc版本影響到程序運行的問題,應該可以考慮:
1)如果程序並沒有新版本glibc才支持的特性,可以考慮在低版本glibc的系統編譯程序。
2)用高版本glibc的linux系統編譯程序,但需部署到較低版本l的inux上,可以考慮用mock等技術製作更好的安裝包,將依賴一起打入安裝包內。
3)利用容器技術,如Docker,在低版本linux上,輕量級的隔離出一個虛擬運行環境,以適應程序運行。
3.glibc升級
1)下載新版本glibc
https://ftp.gnu.org/gnu/glibc/
cd /opt/
wget http://ftp.gnu.org/gnu/glibc/glibc-2.15.tar.gz
2)解壓編譯安裝glibc
tar -xvzf glibc-2.15.tar.gz
cd glibc-2.15
mkdir build
cd build
../configure --prefix=/opt/glibc-2.15
make && make install
3)替換glibc軟鏈接
rm -rf /lib64/libc.so.6
LD_PRELOAD=/opt/glibc-2.15/lib/libc-2.15.so ln -s /opt/glibc-2.15/lib/libc-2.15.so /lib64/libc.so.6
4)glibc升級回滾
rm -rf /lib64/libc.so.6
LD_PRELOAD=/lib64/libc-2.12.so ln -s /lib64/libc-2.12.so /lib64/libc.so.6