Skip to content
On this page

如何更新glibc

背景

GNU C庫(glibc)是GNU系統的標準C庫。它是GNU系統的主要庫,GNU/Linux系統的大多數程序都使用它。它提供了分配內存、搜索目錄、打開和關閉文件、讀寫文件、字符串處理、模式匹配、算術等基本程序。

當你在Linux上安裝一些軟件時,你可能會遇到以下錯誤。

bash
./configure: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by ./configure)

這個錯誤意味着glibc的版本太低。你需要更新glibc到最新的版本。

我們可以通過以下命令檢查glibc的版本。

``bash strings /lib64/libc.so.6|grep GLIBC_

輸出結果如下。

``bash
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_PRIVATE

正如你所看到的,glibc的版本是2.12。它太低了。我們需要把它更新到最新的版本。

更新glibc

首先,我們需要創建一個目錄來存儲glibc源代碼。

bash
mkdir ~/tmp/glibc

然後,我們需要下載glibc的源代碼。

bash
cd ~/tmp/glibc
wget --no-check-certificate https://ftp.gnu.org/gnu/glibc/glibc-2.17.tar.gz

注意:--no-check-certificate是用來禁用證書檢查的,因爲官方網站的證書對某些Linux發行版來說非常新,所以系統可能不信任它,導致下載失敗。

接下來,我們需要解壓源代碼。

bash
tar -xvf glibc-2.17.tar.gz

然後,你會看到一個名爲glibc-2.17的目錄。如果你在提取源代碼時遇到問題,你可以參考如何壓縮和解壓縮

我們需要進入該目錄並編譯源代碼,然後安裝它。

bash
cd glibc-2.17
mkdir build&&cd build
../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin
make&&make install

注意:安裝glibc需要root權限,所以你需要切換到root用戶,或者使用sudo來執行上述命令。

現在我們已經將glibc更新到了最新版本。我們可以再次檢查glibc的版本。

``bash strings /lib64/libc.so.6|grep GLIBC_

輸出結果如下。

```bash
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_2.15
GLIBC_2.16
GLIBC_2.17
GLIBC_PRIVATE

正如你所看到的,glibc的版本已經更新爲2.17。現在我們可以安裝需要更高版本的glibc的軟件了。