如何重定向連結器共享庫預設路徑/lib64/libc.so.6、/lib64/libc.so.6:找不到版本“GLIBC_2.14”

如何重定向連結器共享庫預設路徑/lib64/libc.so.6、/lib64/libc.so.6:找不到版本“GLIBC_2.14”

我的linux機器是x86_64-redhat-linux。

不過我正在使用另一條手臂工具鏈aarch64-linux-gnu-gcc在這台機器上構建(我不需要運行我在這台機器上構建的東西,只需構建,所以使用arm工具鏈來構建應該很好)

我收到以下錯誤:

aarch64-linux-gnu-gcc: /lib64/libc.so.6: 
version `GLIBC_2.14' not found (required by aarch64-linux-gnu-gcc)

所以當前預設共享庫路徑指向/lib64/libc.so.6,我不想更新它,因為我不是這台機器的唯一用戶,我如何使用自己的libc.so.6,可以我將搜尋路徑重定向到另一個目錄?

答案1

問題

GLIBC 2.12已安裝,正如OP的標題所示,他正在嘗試使用交叉編譯工具鏈需要GLIBC >2.14。 OP 表示他也受到限制,因為他無法更新系統。

注意事項

步驟 3 中的以下清單用於建立變更根。如果可能,請使用發行版儲存庫中包含的軟體包。如果儲存庫中的最新版本等於在changeroot之外安裝的版本,請停止步驟3,並使用線上套件搜索,例如RPM查找找到更新的版本,然後繼續。 請勿在 changroot 之外安裝較新版本或線上版本。這將導致系統損壞,我不承擔任何責任!

解決方案

OP 現在必須建立一個改變根監獄安裝 ARM 交叉編譯器,因為 GLIBC 版本無法並行安裝。也可以看看維基百科 - Chroot。為此,請按照下列步驟操作:

  1. 為changeroot建立目錄:mkdir -pv $HOME/newroot
  2. 建立覆蓋以重定向 RPM 套件以安裝到 chroot: 中export ROOT=$HOME/newroot && echo $ROOT。如果您好奇,請參閱步驟 4。
    • 請回顯新變量,因為這很快就會變得非常重要。
  3. 下載changeroot推薦的rpm包(這些是套件名稱):cd $ROOT && mkdir -v download && cd download
    • 設定
    • 檔案系統
    • 基礎系統
    • LD配置
    • glibc <--請注意上面的警告,否則您將毫無結果地完成這項工作。
    • 臨時表
    • 術語帽
    • 恩詛咒
    • 資訊
    • 文件工具
    • bash && libtermcap
    • 資料庫管理系統
    • tcsh
    • 珀爾
    • 檢查配置
    • 文字實用程式
    • 破解庫
    • racklib-dicts
    • 普世資料庫
    • 油嘴滑舌
    • 呆呆地
    • pam--nodeps
    • 影子工具
    • 俚語
    • util-linux --nodeps
    • shutils
    • 桀騁
    • sed
    • 壓縮包2
    • 波普特
    • 茲庫
    • 轉速
    • 您的交叉編譯工具鍊及其相依性
  4. 使用以下命令安裝上面的列表rpm -i --root=$ROOT packagename注意--root參數。這會覆蓋 RPM 的預設安裝行為。請注意清單中帶有附加功能的軟體包,例如 bash && libtermcap。請依照清單中的說明執行 rpm -i 指令,包括參數--root。在上面的範例中,libtermcap 安裝在與 bash 相同的目錄中。
  5. 最後,有人可能會說chroot $ROOT && export PS1="(chroot) $PS1"

參考

上述步驟改編自如何使用 RedHat Linux 6.2 設定 chroot 環境 - 用於 FTP 和 Web 服務

相關內容