编译 GNU C Library(glibc)

经过多次尝试,最终在系统上使用自己编译的 glibc 的想法失败了。虽然可以编译成功,但在使用自己编译的 glibc 库时有很多问题。

glibc 是 GNU C Library 的缩写,是 GNU 项目发布的 C 标准库的实现。它为 GNU/Linux 系统提供了核心系统接口,包括基本的输入输出、内存管理、字符串处理、数学运算等功能。glibc 是许多 Linux 发行版的默认 C 库,广泛用于支持系统和应用程序的运行。

⚠️ 注意:glibc 是重要系统组件,不要直接覆盖系统 glibc,会导致系统挂掉。应该安装到单独的目录。

  1. GNU FTP 服务器下载 glibc 压缩包并解压

  2. 创建一个同级目录 glibc-build

    你的目录结构应该是这样:

    .
    ├── glibc-build
    └── glibc-VERSION
    
  3. 进入 glibc-build 配置并编译:

    cd glibc-build
    ../glibc-VERSION/configure --prefix=$HOME/.local/opt/glibc
    make -j$(nproc)
    make install
    

Troubleshooting

configure 命令报错

在执行 ../glibc-VERSION/configure --prefix=$HOME/.local 命令时可能会看到 make 版本过低的报错。然而如果你确定自己安装了最新的 make,那么可能是由于 configure 检测了 gmake 的版本而不是 make 的版本。你需要创建一个指向 makegmake 软链接。

在使用了新编译的 glibc 库后很多命令都不能用了

在编译完成后,我尝试在新的 glibc 库下运行一些常用命令,发现这些命令都不能用了:

$ LD_LIBRARY_PATH="$HOME/.local/opt/glibc-2.40/lib:$LD_LIBRARY_PATH" ls
ls: /lib64/ld-linux-x86-64.so.2: version `GLIBC_2.35' not found (required by /data2/lx/.local/opt/glibc-2.40/lib/libc.so.6)
posted @ 2024-10-23 19:57  Undefined443  阅读(15)  评论(0编辑  收藏  举报