glibc 知:构建和测试

本文介绍了glibc的构建过程及不同场景下的测试方法,包括只构建不安装、构建并安装到临时目录,以及如何在新glibc环境下编译和调试应用程序。

1. 前言

构建和测试glibc的wiki主页为:https://sourceware.org/glibc/wiki/Testing/Builds

本章将介绍glibc的构建和使用……

2. 构建

我们知道一般linux系统中都会存在已有的glibc库,现在我们要构建自己的glibc库,那新构建的glibc会不会破坏已有的glibc呢?如果破坏了将会带来什么危害呢?

这里我们测试glibc构建,然后并不将它安装到系统路径下,在系统上安装新的glibc可是一件非常大胆的事情,弄不好就会把系统环境破坏了,所以我们最好不要这么做。

2.1. 只构建不安装

只构建不安装,可以执行标准的configure和make,例如:

$ mkdir $HOME/src
$ cd $HOME/src
$ git clone git://sourceware.org/git/glibc.git
$ mkdir -p $HOME/build/glibc
$ cd $HOME/build/glibc
$ $HOME/src/glibc/configure --prefix=/usr
$ make

切记:不要执行make install

通过使用前缀/usr来创建glibc,它将加载和使用来自标准位置的所有配置文件。前缀/usr被认为是系统glibc的正确前缀。更高级的用户会注意到前缀实际上是 glibc ABI 的一部分。

最后,如果您想使用一组替代的 Linux 内核头文件进行构建,您将需要使用--with-headers=指向 Linux 头文件和 glibc 在构建期间所需的其他头文件的统一安装,这些头文件可能包含也可能不包含 SELinux头文件(–with-selinux)或 NSS头文件(–enable-nss-crypt)。

测试如下:
在这里插入图片描述
错误:

  • bison缺少或版本太老
    作者第一次构建glibc,所以难免会缺少一些工具(glibc的依赖),只需要进行安装相应的工具即可。不同的操作系统安装方法不一样,作者的的系统是fedora,所以可以通过dnf进行安装,比如:sudo dnf install bison
    在这里插入图片描述

修复configure中出现的所有错误,直到执行成功。成功后,在构建目录下会生成Makefile,之后执行make进行构建即可,构建时间比较漫长……(读者可以尝试用make -jn来并行构建(n表示任务数))
在这里插入图片描述
构建成功后,如下图所示:
在这里插入图片描述
在这里插入图片描述

2.2. 构建并安装

上面我们提到最好不要在系统中安装新的glibc,是指将glibc安装到系统默认环境中。如果我们将其安装到用户自定义的临时目录中,就不会破坏系统中的glibc了,本节将简述如何将构建的glibc安装到临时目录。

先做带–prefix=/usr目录的configure,然后make和make install DESTDIR=xxx(其中xxx即为用户指定的临时安装目录,将GNU标准变量DESTDIR设置为某个临时安装目录xxx),例如:

$ DESTDIR=<path to the GLIBC install directory>
$ mkdir $HOME/src
$ cd $HOME/src
$ git clone git://sourceware.org/git/glibc.git
$ mkdir -p $HOME/build/glibc
$ cd $HOME/build/glibc
$ $HOME/src/glibc/configure --prefix=/usr
$ make
$ make install DESTDIR=${DESTDIR}

基于上节的构建结果,进行安装测试,如下所示:
在这里插入图片描述
在这里插入图片描述
您现在已经在$DESTDIR 的子目录中安装了新构建的 glibc ,您可以构建针对

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

canpool

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值