GLIBC 升級安裝與 SCL 知識盲區
前言
glibc 是 GNU 發布的 libc 庫,即 c 運行庫。glibc 是 linux 系統中最底層的 api,幾乎其它任何運行庫都會依賴于 glibc。glibc 除了封裝 linux 操作系統所提供的系統服務外,它本身也提供了許多其它一些必要功能服務的實現。由于 glibc 囊括了幾乎所有的 UNIX 通行的標準,可以想見其內容包羅萬象。而就像其他的 UNIX 系統一樣,其內含的檔案群分散于系統的樹狀目錄結構中,像一個支架一般撐起整個作業系統。在 GNU/Linux 系統中,其 C 函式庫發展史點出了 GNU/Linux 演進的幾個重要里程碑,用 glibc 作為系統的 C 函式庫,是 GNU/Linux 演進的一個重要里程碑。
在 CentOS 6.5 最高支持 glibc 的版本為 2.12,而有些程序要 2.14 版本,所以需要升級或者額外安裝。
$ strings /lib64/libc.so.6 |grep GLIBC_
GLIBC_2.2.5
GLIBC_2.2.6
GLIBC_2.3
GLIBC_2.3.2
GLIBC_2.3.3
GLIBC_2.3.4
GLIBC_2.4
GLIBC_2.5
GLIBC_2.6
GLIBC_2.7
GLIBC_2.8
GLIBC_2.9
GLIBC_2.10
GLIBC_2.11
GLIBC_2.12
GLIBC_2.13
GLIBC_2.14
GLIBC_PRIVATE
由于 glibc 是一個比較底層的依賴庫,為了 CentOS 6 安全,你可能不太想冒著風險直接升級,特別是對于一些運行這其他業務的服務器。前車之鑒就在這里!
安裝
但是,您可以輕松地在 2.12 的基礎上并排安裝 2.14,然后使用它來編譯項目等。方法如下:
$ mkdir ~/glibc_install; cd ~/glibc_install
$ wget http://ftp.gnu.org/gnu/glibc/glibc-2.14.tar.gz
$ tar zxvf glibc-2.14.tar.gz
$ cd glibc-2.14
$ mkdir build
$ cd build
$ ../configure --prefix=/opt/glibc-2.14
$ make -j4
$ make install
$ export LD_LIBRARY_PATH="/opt/glibc-2.14/lib:$LD_LIBRARY_PATH"
總結
感謝小伙伴留言中提到的 devtoolset 工具,這對我而言是以前沒接觸過的知識盲區,先簡單看一下,以待后續深入了解。
背景
CentOS/RHEL Linux 發行版以穩定性著稱,所有的軟件都要盡可能 stable,導致的一個結果就是基礎軟件的版本非常的低,比如 CentOS 6.7(15年發布) 中 gcc 版本還是 4.4.7(12年的版本)。這對開發來說就不是很友好,比如我們想用 C++ 11 中的某個特性,就必須自己編譯一個高版本的 gcc 出來,但是這會有另外一個問題,開發環境不好維護,如果自己有多臺電腦或者多個人合作的項目,每臺機器上都要自己編一份,維護起來就比較麻煩。
SCL
SCL(Software Collections)是一個 CentOS/RHEL Linux 平臺的軟件多版本共存解決方案,為 RHEL/CentOS Linux 用戶提供一種方便、安全地安裝和使用應用程序和運行時環境的多個版本的方式,同時避免把系統搞亂。
SCL 項目主頁:https://www.softwarecollections.org
devtoolset
不同平臺的編譯環境不一樣,所以 RedHat 就推出了 scl (Software Collections) ,它可以根據 devtoolset 一起配合來快速統一開發環境,不用一個個的去找各個官網再去編譯源碼安裝。
使用 scl 可以暫時的改變當前用戶的編譯工具,例如你的系統版本 gcc 4.4.7 但是你可以使用 scl 工具它可以臨時的把你的 gcc 版本提升到 4.8。
其實,簡單的來說,devtoolset 就是 SCL 提供的一套專門用于 CentOS 或 Red Hat Enterprise Linux 平臺編譯開發的一套工具集。
Developer Toolset is designed for developers working on CentOS or Red Hat Enterprise Linux platform. It provides current versions of the GNU Compiler Collection, GNU Debugger, and other development, debugging, and performance monitoring tools.

生信服務器 | 更改 CentOS/RHEL 6/7 中的時區
本文分享自微信公眾號 - 生信科技愛好者(bioitee)。
如有侵權,請聯系 support@oschina.cn 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

浙公網安備 33010602011771號