记录glibc编译失败经历

本文探讨了在Linux系统中升级glibc至特定版本时遇到的问题,特别是修改/etc/ld.so.conf导致系统故障的情况,并提供了正确的解决方法。

glibc是Linux系统非常重要的组件,所有的可执行文件都依赖动态库libc.so.6,在x86_64系统下是/lib64/libc.so.6=>libc-[glibc-version].so,今天想升级glibc到glibc-2.22,然后按照网上给出的方法configure&&make && make install到了一个另外的目录/opt/glibc,但是坑爹的是我想测试下,就直接把/etc/ld.so.conf文件修改了!!!!!
修改了!!结果就是系统挂了!!除非是进入到内存文件系统,然后挂载硬盘的根文件系统,删除掉多的这一行!!哎~~~~

竟然忘了动态库的搜索路径,如下:

  1. 用户指定的路径-L
  2. LD_LIBRARY_PATH目录的路径
  3. /etc/ld.so.conf中设置的路径/etc/ld.so.cache,不确定正确性千万不要改这个!!!
  4. /lib64
  5. /usr/lib64

附注:
关于如何正确使用指定版本的glic来编译程序
http://stackoverflow.com/questions/13668457/vdso-time-missing-from-core-utils
http://stackoverflow.com/questions/847179/multiple-glibc-libraries-on-a-single-host/851229#851229

### glibc 编译与安装指南 glibc 是 GNU C 库,广泛用于 Linux 系统中。编译和安装 glibc 需要遵循严格的步骤以确保库的正确性和兼容性。以下是一个完整的教程,涵盖从准备环境到最终安装的所有关键点。 #### 准备工作 在开始之前,请确保系统已安装必要的工具和依赖项。例如,`gcc`、`make` 和其他开发工具链必须可用。可以通过以下命令安装这些工具: ```bash sudo apt update && sudo apt install -y build-essential gcc g++ python3 ``` #### 下载 glibc 源码 从官方仓库或镜像站点下载 glibc 的最新稳定版本。例如: ```bash wget https://ftp.gnu.org/gnu/glibc/glibc-2.37.tar.gz tar -xvzf glibc-2.37.tar.gz cd glibc-2.37 ``` #### 创建构建目录 为了保持源码目录的干净,建议在源码目录之外创建一个单独的构建目录。 ```bash mkdir build cd build ``` #### 配置编译选项 使用 `../configure` 脚本来配置编译选项。以下是一个典型的配置命令示例: ```bash ../configure --prefix=/usr/local/glibc-2.37 ``` 此命令将 glibc 安装到 `/usr/local/glibc-2.37` 目录下[^1]。可以根据需要调整安装路径。 #### 编译 glibc 运行 `make` 命令以编译源码。这可能需要一些时间,具体取决于系统的性能。 ```bash make -j$(nproc) ``` #### 测试编译结果(可选) 在安装之前,可以运行测试套件以验证编译是否成功。 ```bash make check ``` #### 安装 glibc 完成编译后,使用 `make install` 将库安装到指定的目标目录。 ```bash sudo make install ``` #### 更新动态链接器配置 如果希望新安装的 glibc 成为系统的默认库,则需要更新动态链接器配置文件 `/etc/ld.so.conf` 并重新生成缓存。 ```bash echo "/usr/local/glibc-2.37/lib" | sudo tee -a /etc/ld.so.conf sudo ldconfig ``` #### 验证安装 可以通过以下命令检查 glibc 版本,以确认安装是否成功。 ```bash ldd --version ``` #### 注意事项 - 在多架构系统上,确保交叉编译工具链已正确配置[^2]。 - 如果目标系统是 ARM64 架构,可以参考类似的交叉编译流程,但需要调整 `CROSS_COMPILE` 环境变量。 ```python print("Glibc installation completed successfully.") ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值