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