重编译Linux命令源代码

 

以su命令为例。

查看su命令的路径:
# which su
/bin/su

查看su是由哪个包安装的:
# rpm -qf /bin/su
coreutils-5.97-12.1.el5

去网上搜索“coreutils-5.97-12.1.el5.src.rpm”包,注意,后面还多了个“.src”,表示源代码的安装包。

将下载到的源代码的包直接安装是行不通的,需要先安装下列.rpm包:
elfutils-libs-0.125-3.el5.i386.rpm
elfutils-0.125-3.el5.i386.rpm
rpm-build-4.4.2-47.el5.i386.rpm

安装完上面的包,就可以安装任意源代码的包了。注意,使用命令
# rpm -ivh coreutils-5.97-12.1.el5.src.rpm
安装时会报错,但这没影响。安装包依然会在/usr/src/redhat/SOURCES/目录下生成我们想要的。

进入/usr/src/redhat/SOURCES/目录,解压缩coreutils-5.97.tar.bz2:
# bzip2 -d coreutils-5.97.tar.bz2
#tar -xvf coreutils-5.97.tar

进入解压出来的coreutils-5.97目录,各命令的源代码就放在src目录中,需要的头文件放在lib目录中。直接用
# gcc -I/usr/src/redhat/SOURCES/coreutils-5.97/lib/ -E -o su.i /usr/src/redhat/SOURCES/coreutils-5.97/src/su.c
是无法生成预处理文件的,因为源代码需要的某些头文件是由coreutils-5.97目录

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值