Centos 8安裝gcc的方法


GCC介紹

GCC是GNU編譯器套件,是由GNU開發的編程語言的編譯器。GNU編譯器套件包括C、C++、Objective-C、Fortran、Java、Ada和Go語言及這些語言的庫,使用gcc編譯程序時,編譯過程可以為4個階段:預處理(Pre-Processing)、編譯(Compiling)、匯編(Assembling)、鏈接(Linking)

由於 Linux 操作系統的自由開源,在其基礎上衍生出了很多不同的Linux操作系統,如CentOS、Ubuntu、Debian等,這些Linux發行版中,大多數都默認裝有GCC編譯器,但是在CentOS8中並沒有安裝,這就需要自己來安裝了

下面介紹在線安裝、離線安裝及版本升級方法,安裝系統是CentOS 8.3,其它版本可能略有不同

在線安裝

在線安裝是一種極其簡單的“傻瓜式”安裝方法,但是其默認根據當前系統版本所對應的gcc進行安裝,而非選擇最新版gcc進行安裝

  1. 確認當前系統是否已安裝gcc,執行以下命令

    rpm -q gcc
    #或者輸入查看gcc版本的命令
    gcc -v
    
  2. 使用命令安裝

    dnf install gcc gcc-c++ -y
    
  3. 等待安裝結束后再次輸入查看gcc版本的命令,出現gcc版本信息就說明安裝成功啦

    rpm -q gcc
    #輸入查看gcc版本的命令
    gcc --verson
    gcc -v
    g++ -v
    

版本升級

將gcc-8.3升級到gcc10.2,若未安裝gcc,不能使用該方法直接安裝gcc,沒有舊版本的gcc,編譯時會失敗的,會報錯configure: error: no acceptable C compiler found in $PATH

  1. 下載gcc-10.2的安裝包,若下載失敗可以通過國內鏡像站下載,在華為、阿里、清華等鏡像站搜索GNU,選擇需要的版本

    wget https://gcc.gnu.org/pub/gcc/releases/gcc-10.2.0/gcc-10.2.0.tar.gz
    
  2. 解壓並進入目錄

    tar -zxf gcc-10.2.0.tar.gz
    cd gcc-10.2.0
    
  3. 執行以下命令,下載安裝gcc的依賴包,由於網絡原因,下載時間可能會有點久,請耐心等待

    ./contrib/download_prerequisites
    
  4. 由於gcc編譯器支持多種語言的編譯,而實際情況中可能只需要編譯 1~2 種編程語言,因此需要對其進行必要的配置。通過執行如下指令,可以配置gcc支持編譯C、C++

    ./configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
    
  5. 使用make命令來編譯gcc源程序,若提示命令不存在,先安裝make,執行命令dnf install make -y,編譯時間會很長,本次安裝耗時近2小時,建議選擇合適的時間進行編譯

    make
    
  6. 編譯完成后安裝gcc

    make install
    
  7. 安裝完成后重啟服務器,然后查看gcc版本

    # 查看gcc版本是否變更
    gcc --version
    gcc -v
    g++ -v
    

    重啟服務器后可以發現gcc成功從8.3.1升級到10.2.0,若服務器未重啟版本不會變更,查看還是返回舊版本信息

離線安裝

在工作中,有時會在內網進行工作,無法連接外網,不得不采取離線安裝方式,本次離線安裝也是采用根據系統版本選擇對應的gcc進行安裝

  1. 首先查看系統相關版本信息

    # 查看系統版本信息
    cat /etc/centos-release
    # 查看Linux版本信息
    cat /proc/version
    # 此命令輸出結果包含了系統內核版本、gcc編譯器版本和Red Hat版本號
    
  2. 根據上步獲得的信息,使用可訪問外網的電腦下載相關gcc的rpm包,下載地址:點擊此處進入

  3. 進入詳情頁,頁面顯示相關描述信息、下載地址、所需依賴等,依賴如下,並非所有依賴都要安裝,可以參考別人版本安裝的rpm,改下版本信息后進行下載,但是此方式並能保證修改是正確的!另外若不知道安裝GCC到底需要哪些依賴的rpm,就直接下個gcc-c++的rpm,看提示需要哪些依賴關系包,然后再下載相關依賴

  4. 下載gcc-c++的rpm包,在詳情頁,訪問下載地址即可

  5. 將下載的rpm包上傳到服務器上,進行安裝

    # 新建目錄,將rpm包統一放到此目錄下
    mkdir gcc
    cd gcc
    # 安裝rpm包
    rpm -ivh gcc-c++-8.3.1-5.1.el8.x86_64.rpm
    
  6. 根據上一步獲得依賴提示,回到網站中進入gcc-c++-8.3.1-5.1.el8.x86_64.rpm詳情頁,下載依賴后上傳到服務器安裝

    # 逐條安裝
    rpm -ivh libmpc-1.0.2-9.el8.x86_64.rpm
    rpm -ivh libstdc++-devel-8.3.1-5.1.el8.x86_64.rpm
    rpm -ivh gcc-8.3.1-5.1.el8.x86_64.rpm
    # 或者直接合並為一條命令
    rpm -ivh gcc-8.3.1-5.1.el8.x86_64.rpm libmpc-1.0.2-9.el8.x86_64.rpm libstdc++-devel-8.3.1-5.1.el8.x86_64.rpm
    
  7. 同樣根據依賴提示,再次回到網站中進入gcc-8.3.1-5.1.el8.x86_64.rpm詳情頁,下載依賴后上傳服務器安裝,注意進入相應的rpm包頁面下載依賴,否則依賴找不到

    # 逐條安裝
    rpm -ivh cpp-8.3.1-5.1.el8.x86_64.rpm
    rpm -ivh isl-0.16.1-6.el8.x86_64.rpm
    rpm -ivh glibc-devel-2.28-127.el8.x86_64.rpm
    # 或者合並為一條命令
    rpm -ivh cpp-8.3.1-5.1.el8.x86_64.rpm isl-0.16.1-6.el8.x86_64.rpm glibc-devel-2.28-127.el8.x86_64.rpm
    
  8. 同樣根據依賴提示,回到網站中進入glibc-devel-2.28-127.el8.x86_64.rpm詳情頁,下載依賴后上傳服務器安裝

    # 逐條安裝
    rpm -ivh glibc-headers-2.28-127.el8.x86_64.rpm
    rpm -ivh rpm -ivh libxcrypt-devel-4.1.1-4.el8.x86_64.rpm
    # 或者合並為一條命令
    rpm -ivh glibc-headers-2.28-127.el8.x86_64.rpm libxcrypt-devel-4.1.1-4.el8.x86_64.rpm
    
  9. 還是根據依賴提示,回到網站中進入glibc-headers-2.28-127.el8.x86_64.rpm詳情頁,下載依賴后上傳服務器安裝

    # 安裝glibc-headers依賴
    rpm -ivh kernel-headers-4.18.0-240.15.1.el8_3.x86_64.rpm
    # 安裝glibc-headers
    rpm -ivh glibc-headers-2.28-127.el8.x86_64.rpm
    # 安裝libxcrypt-devel
    rpm -ivh libxcrypt-devel-4.1.1-4.el8.x86_64.rpm
    
  10. 這里出現了個小狀況狂,安裝的兩個rpm包相互依賴,只能將一方跳過依賴並強行安裝了

    # 強行安裝libxcrypt-devel
    rpm -ivh libxcrypt-devel-4.1.1-4.el8.x86_64.rpm --nodeps --force
    # 安裝cpp、isl、glibc-devel
    rpm -ivh cpp-8.3.1-5.1.el8.x86_64.rpm isl-0.16.1-6.el8.x86_64.rpm glibc-devel-2.28-127.el8.x86_64.rpm
    
  11. 總算將所有依賴安裝完成,最后再安裝gcc和gcc-c++

    # 安裝gcc
    rpm -ivh gcc-8.3.1-5.1.el8.x86_64.rpm
    # 安裝gcc-c++
    rpm -ivh gcc-c++-8.3.1-5.1.el8.x86_64.rpm
    
  12. 驗證是否安裝成功

    #查看gcc版本
    gcc --verson
    #或者
    gcc -v
    g++ -v
    

    通過驗證gcc安裝成功

    想要自己解決所需的依賴關系,想到了這種有點繁瑣的方式,知道這些所需的依賴關系后按反向順序安裝或者將所有的rpm包都強制安裝就能很快完成啦!

    本次安裝用到了以下10個rpm包

    kernel-headers-4.18.0-240.15.1.el8_3.x86_64.rpm
    glibc-headers-2.28-127.el8.x86_64.rpm
    libxcrypt-devel-4.1.1-4.el8.x86_64.rpm
    glibc-devel-2.28-127.el8.x86_64.rpm
    isl-0.16.1-6.el8.x86_64.rpm
    cpp-8.3.1-5.1.el8.x86_64.rpm
    libstdc++-devel-8.3.1-5.1.el8.x86_64.rpm
    libmpc-1.0.2-9.el8.x86_64.rpm
    gcc-8.3.1-5.1.el8.x86_64.rpm
    gcc-c++-8.3.1-5.1.el8.x86_64
    

    當知道並獲得所需的依賴包時,兩步即可安裝完成

    # 1.上傳rpm包
    # 2.忽略依賴強制安裝所有rpm包
    rpm -ivh *.rpm --nodeps --force
    

    其實還有一種方式獲取gcc依賴,使用在線安裝時已經有顯示需要哪些rpm包,然后找到這些rpm包下載后就可以安裝啦

    在網上找個相關資源很多都是需要積分付費的,自己通過這種方式也安裝成功了,免費提供下gcc-8.3.1及依賴包,下載地址:點擊此處,密碼:gx09


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM