為特定使用者帳號升級 gcc

為特定使用者帳號升級 gcc

我在一個運行 CentOS6/RHEL6 的計算集群上工作,與大約 100 名其他用戶共享該集群,並由一名 IT 管理員進行監督。

最近,我開始用C++編寫,我的一些程式碼依賴C++11。根據這個網頁gcc, 4.8.1以上版本 支援C++11 。

不幸的是,計算集群的版本是4.4.7。

不久前,由於不同的原因,我嘗試將gcc版本 4.8.4 安裝到叢集上我的主目錄下的某個位置。安裝失敗,出現這個錯誤訊息。一些谷歌搜尋讓我相信我應該更新glibc,所以我嘗試將其安裝到我的主目錄中。那戲劇性地失敗了

gcc我的 IT 管理員總結道:“修改叢集上的版本可能不起作用。”在我用更多問題惹惱她之前(因為此時我需要的更新版本一些C 編譯器),我正在眾包這些:

(1) 將gcc版本 4.8.1+ 安裝到我的使用者帳號是否可行? (在我上次嘗試這樣做之後,有些人說這根本上是一個糟糕的主意。)

(2) 如果(1)的答案是肯定的,這次我該採取什麼預防措施來確保安裝成功?是否需要安裝glibc到我的帳戶?這可行嗎?

(3) 如果 (1) 的答案是否定的,我的 IT 管理員是否可以在gcc系統範圍內安裝較新的版本,而不會破壞依賴現有版本的程式碼?

(4) 如果上述方法對於 都不可行gcc,那麼使用另一個 C 編譯器時情況會改變嗎?

總而言之,我正在尋找具有 C 編譯器知識的人gcc(或另一個 C 編譯器)來解釋一個人(未經sudo授權)將如何升級它(如果可能的話)。

答案1

我能夠在 Centos 6.7 上的主目錄中從原始碼建立 GCC 4.8.5。我正在使用 glibc 發行版;我不需要建立 glibc。

警告:我在安裝了發行版 GCC 4.4.x 來源套件的建置依賴項以及libmpc-develepel 儲存庫中的套件的系統上執行此操作。如果缺少這些,您可能必須先將它們從原始程式碼建置到主目錄中,並以某種方式更改 gcc 建置過程以從那裡使用它們(如果可能的話)。

建設海灣合作委員會:

  1. 取得 GCC 原始碼

    curl -LO https://mirrors.kernel.org/gnu/gcc/gcc-4.8.5/gcc-4.8.5.tar.bz2
    
  2. 提煉

    tar xf gcc-4.8.5.tar.bz2
    
  3. 在 GCC 來源目錄之外建立一個建置目錄並進入它

     mkdir build && cd build
    
  4. 配置。我做了:

     ../gcc-4.8.4/configure --build=x86_64-linux-gnu --prefix=/home/rakslice/gcc_4_8 \
                            --enable-checking=release --enable-languages=c,c++,fortran \
                            --disable-multilib --program-suffix=-4.8
    
  5. 建造。我有 4 個核心,所以我這麼做了:

     make -j 5
    
  6. 安裝

     make install
    
  7. 現在我可以編譯並執行一些測試程式碼。

     /home/rakslice/gcc_4_8/bin/g++-4.8     hello.cpp   -o hello
     ./hello
     Hello, World!
    

答案2

關於您的具體問題:

(1) 是的,這是可行的,但可能不那麼有趣。

(2) 不需要,通常可以使用系統glibc。從 gcc 你需要libstdc++libgcc等等。

我的方法是遵循官方說明 很接近並且僅在非常適合您的平台時才使用非官方指令。

實際上,我不會費心使用 4.8,而是直接使用當前版本系列之一(5.2 或 4.9)。

注意:我自己沒有進行過非 root gcc 安裝,但我在將不同版本的 gcc 維護為 gnu 模組的系統上工作。

相關內容