CentOS7.9中的Glibc2.17源碼編譯升級到Glibc2.31

来源:https://www.cnblogs.com/emanjusaka/archive/2023/08/18/glibc217-source-code-compilation-and-upgrade-to-glibc231-in-centos79-z1u5we5.html
-Advertisement-
Play Games

# 一、準備工作 ## 1、配置yum阿裡鏡像源 * 查看yum當前配置的倉庫,如果yum配置的不是阿裡雲源,請配置阿裡雲源。 ```shell yum repolist all ``` * 驗證是否能ping通阿裡雲 ```shell # 如果不能ping通可能是DNS沒有配置 ping mirr ...


一、準備工作

1、配置yum阿裡鏡像源

  • 查看yum當前配置的倉庫,如果yum配置的不是阿裡雲源,請配置阿裡雲源。

    yum repolist all
    
  • 驗證是否能ping通阿裡雲

    # 如果不能ping通可能是DNS沒有配置
    ping  mirrors.aliyun.com
    
  • 備份官方的原yum源配置

    mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.back
    
  • 下載Centos-7.repo文件

    # 如果沒有wget命令,使用yum install wget進行安裝
    wget -o /etc/yum.repos.d/CentOS-Base.repo http://mirros.aliyun.com/repo/Centos-7.repo
    
  • 清除及生成緩存

    # 清除yum緩存
    yum clean all
    # 緩存阿裡雲源
    yum makecache
    # 測試阿裡雲源
    yum list
    # 更新yum源
    yum update
    

2、安裝Python3

yum install python3

3、升級gcc

# 下載軟體包
wget https://mirrors.aliyun.com/gnu/gcc/gcc-9.3.0/gcc-9.3.0.tar.gz
# 解壓依賴包
tar -zxf gcc-9.3.0.tar.gz
cd gcc-9.3.0/
# 下載4個依賴包
./contrib/download_prerequisites
# 預編譯
mkdir build
cd build
../configure --enable-checking=release --enable-language=c,c++ --disable-multilib --prefix=/usr/local/gcc
# 查看cpu核數
cat /proc/cpuinfo| grep “processor”| wc -l
# -j4中的數字為cpu核數,及併發工作任務數量,可以提高編譯效率,編譯時間比較久。
make -j4
# 編譯安裝
make install
# 配置軟鏈接
mv /usr/bin/gcc /usr/bin/gcc_4.8.5
ln -s /usr/local/gcc/bin/gcc /usr/bin/gcc
mv /usr/bin/g++ /usr/bin/g++_4.8.5
ln -s /usr/local/gcc/bin/g++ /usr/bin/g++
# 檢查gcc版本
gcc -v

4、升級make

# 下載軟體包
wget https://mirrors.aliyun.com/gnu/make/make-4.3.tar.gz
# 解壓
tar -zxf make-4.3.tar.gz
cd make-4.3/
# 預編譯
mkdir build
cd build
./configure --prefix=/usr
# -j4中的數字為cpu核數,及併發工作任務數量,可以提高編譯效率
make -j4
# 編譯安裝
make install
# 查看版本
make -v

5、安裝biso

yum install biso

二、源碼編譯安裝

註意:如果make編譯完有錯誤,一定不要執行make install安裝操作,有可能會把系統搞崩命令失效的情況。出現錯誤的原因就是/usr/lib64​中的軟連接出現了不匹配的情況。恢復之前的軟連接即可恢復系統。出現問題後,千萬不要斷開SSH的連接,斷開就連不上了會非常麻煩。

# 下載軟體包
wget https://mirrors.aliyun.com/gnu/glibc/glibc-2.31.tar.gz
# 解壓
tar -zxvf glibc-2.31.tar.gz
# 預編譯
mkdir build
cd build
../configure --prefix=/usr --disable-profile --enable-add-ons --with-headers=/usr/include --with-binutils=/usr/bin --disable-sanity-checks --disable-werror
# 編譯
make -j4
# 備份lib64
cp /usr/lib64 /usr/lib64.back
# 安裝
make install
# 查看版本
ldd --version

三、安裝locale(可選)

make localedata/install-locales


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • **即時編譯器優化技術一覽:** ![](https://img2023.cnblogs.com/blog/3256961/202308/3256961-20230816153001309-163136082.png) ![](https://img2023.cnblogs.com/blog/325 ...
  • # Unity 如何獲取Texture 的記憶體大小 在Unity中,要獲取Texture的記憶體文件大小,可以使用UnityEditor.TextureUtil類中的一些函數。這些函數提供了獲取存儲記憶體大小和運行時記憶體大小的方法。由於UnityEditor.TextureUtil是一個內部類,我們需要 ...
  • ## 引言 今天在做一個設置文件夾路徑的功能,就是一個文本框,加個按鈕,點擊按鈕,彈出 `FolderBrowserDialog` 再選擇文件夾路徑,簡單做法,可以直接 `StackPanel` 橫向放置一個 `TextBox` 和一個 `Image Button`,然後點擊按鈕在 後臺代碼中給 ` ...
  • # Unity 編輯器資源導入處理函數 OnPreprocessTexture 用法 [![https://github.com/AlianBlank/download.unity.com](https://img2023.cnblogs.com/other/406187/202308/406187 ...
  • 他媽的!!!就因為這破事導致我浪費了兩天的時間!!! 都是基礎不扎實的鍋,導致我沒能第一時間想到問題的關鍵 好了,平復一下心情,快速的寫一篇博客來記錄這個叼問題 ## 解決方法 先把結論放在這裡:用`extern "C" {}`把中斷函數包起來 ```C++ // 就像這樣 extern "C" { ...
  • ansible 是用來自動化管理遠程操作系統的工具. ansible的三要素: `控制節點` , `被控節點`, `資產清單` ### 安裝 ansible 可以通過pip直接安裝 ```bash python3 -m pip install ansible --user ``` ### 快速入門 ...
  • 這裡的使用場景是在ubuntu x64上編譯arm程式,需要一個開發環境,而最省心的方式就是自己做一個arm環境的chroot鏡像,然後自由用apt-get安裝依賴,然後編譯程式。所以這裡就以製作arm鏡像為例。 在我們開始之前,我們需要瞭解一下ARM的幾種架構: armel(abi):這個是老架構 ...
  • ## Ansible的安裝及簡單使用 ## #### 一.Ubuntu安裝Ansible ```shell sudo apt update sudo apt install ansible #使用以下命令檢查安裝是否成功: ansible --version ``` ![image-20230817 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...