如何重定向链接器共享库默认路径/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
    • sh-utils
    • 桀骜
    • 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 服务

相关内容