Linux系统glibc(GNU C Library)从零安装步骤

Linux环境下安装与编译glibc指南
本文详细介绍了如何在Linux系统中从源码编译和安装glibc库。首先,你需要从官网获取稳定版的glibc源码,并在新建的build目录中运行configure脚本进行配置,指定安装路径。在配置时,需确保不在源码目录直接执行,以保持源码的完整性。然后,通过make命令进行编译,最后使用make install完成安装。整个过程需注意选择合适的安装目录,避免影响系统原有glibc。

要研究一下glibc相关的东西,当然得先知道咋安装。

目录

源码clone

编译和安装

配置configure

编译并安装


源码clone

首先,得把源码弄下来,直接去官网看看咋弄就行了:The GNU C Libraryhttps://www.gnu.org/software/libc/sources.html

克隆到本地,check进去就行,但注意要去stable版本,不要直接去master。

编译和安装

我当时安装的时候是2.34版本,写这篇的时候已经是2.35了,但都差不多。

clone下来的仓库的根目录有一个文件叫INSTALL,里面有如何编译的详解,但全是英文。想仔细了解的就直接去看那个文件,基本可以明白安装的步骤和一些原理。不想看大段英文,而且想简单粗暴安装的,可以继续往下读我这篇。

配置configure

和很多软件的安装类似,得先运行一个脚本叫configure,可以根据用户需求或喜好配置一下。

为了能保留一个完整的源码,不让编译的时候把它破坏了,很多软件(包括这个glibc)都希望你新开一个目录,专门负责存放编译时候生成的文件。这样即使除了什么问题,源码的这个目录也是纹丝未变,方便排除问题后重新开始。

glibc为了完全保护源码干净,在configure脚本中加入了判断。如果configure就在目前的工作目录(cwd)里,那么它不能被执行。也就是说,必须cd到一个别的目录,才能执行这个目录里的configure。因此永远也不可能“./configure”,而是只能“./some_directory_path/configure”。

如果你./configure了,会报error: you must configure in a separate build directory。

[@localhost glibc-2.34]$ ./configure 
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking for gcc... gcc
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for readelf... readelf
checking for g++... g++
checking whether we are using the GNU C++ compiler... yes
checking whether g++ accepts -g... yes
checking whether g++ can link programs... no
configure: error: you must configure in a separate build directory

在我们的编译过程中,可以选择在glibc源码目录(clone下来一般叫glibc-2.xx)的上一层目录里建一个build目录,用来装编译生成的文件。

此时就准备“../glibc-2.xx/configure”了。但注意,此时build目录里最好不要有任何文件,不然可能会影响编译

具体怎么配置呢?可以很复杂,但也可以很简单,就用一个选项--prefix就行了,这是选定你要安装在哪个目录。默认是--prefix=/usr/local,你要只是想随便安装一下,就改改这个选项,以防不小心把系统破坏了。

执行吧:

[@localhost glibc-2.34]$ cd ../build-glibc/
[@localhost build-glibc]$ ../glibc-2.34/configure --prefix=/mydir

编译并安装

啥也不用管,直接make就行了,-j加快点速度也行。

[@localhost build-glibc]$ make

编译完了就安装,这时候已经不用再选安装到哪个目录了,configure的时候选过了,而且如果这个目录不存在也是会帮你创建的。直接安装:

[@localhost build-glibc]$ make install

都跑完了就大功告成!

资源下载链接为: https://pan.quark.cn/s/67c535f75d4c 在 Linux 系统中,glibcGNU C Library)是用户空间程序与内核交互的关键组件,它实现了 POSIX 和 C 标准库,支持系统运行各类应用。若 glibc 出现问题,可能导致系统命令和应用无法运行,甚至系统无法启动。例如,一台运行 Red Hat Enterprise Linux Server 6.0(内核版本 2.6.32-71.el6.x86_64)的机器,在升级 glibc 失败后删除了旧版本,导致系统命令失效、无法正常启动。这凸显了 glibcLinux 系统的重要性。 为解决该问题,可按以下步骤操作:首先,制作 Linux 系统 U 盘启动盘,并在 BIOS 中将 U 盘设为第一启动设备。重启机器后,进入系统引导界面选择“系统救援模式”。接着,选择正确的硬盘及 U 盘分区目录(通常是 /dev/sda1),跳过网络设置并选择“Continue”。系统会默认挂载到 /mnt/sysimage 目录,此时可进入 shell 命令行界面。 在命令行中,创建光驱挂载目录并挂载 U 盘,将 glibc 和 libgcc 的 rpm 包复制到相应目录。使用 chroot 命令切换到原操作系统的根目录 /mnt/sysimage,若提示缺少 so 文件,需手动复制必要文件。将 glibc 的 rpm 包转换为 repo 格式,解压缩后复制到 /lib64 目录。依次安装 glibc 和 libgcc 的 rpm 包,注意使用 --force 和 --nodeps 参数强制安装安装完成后重启系统。 重启过程中可能会出现“chroot: failed to run command ‘/bin/sh’: No such file or directory”错误,这通常
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值