CentOS系统如何获取命令的源代码

2020-01-30 16:56:19刘景俊

由于不同的版本设置会有所不同,所以其设置会有所不同,方法可总结为如下:

(1)gpgkey与该文件中已有的节的gpgkey相同

(2)为了确认文件的存在和情况,可以打开网站http://vault.centos.org/查看具体的情况,再根据具体的情况来填写

(3)设置baseurl时需要根据自己的系统的版本来设置,如本人的机子为CentOS-6.6,则在设置时,相关的参数就设置为6.6,即http://vault.centos.org/后接的子路径为6.6。

该文件的作用是为yum其及相关工作的下载提供一个源,如在使用yumdownloader(下面会讲到)下载源代码时,会发生如下动作:

(1)下载$baseurl/repodata/repomd.xml文件,若该repomd.xml文件比系统中的新,更新系统中的相应的repomd.xml

(2)下载$baseurl/SPackages/中的相应的源代码rpm包。

2)使用which命令查看ls命令的位置,如下:

which ls

# 输出:/bin/ls

3)使用rpm命令查询ls命令所属的包,如下:

rpm -qf /bin/ls

# 输出:coreutils-8.4-37.el6.i686

4)yumdownloader是一个从RPM源下载RPM的程序,可以使用yumdownloader命令安装源代码,如下:

yumdownloader --source coreutils-8.4-37.el6.i686

注:

(1)若yumdownloader命令没有安装,则可以使用此命令安装:yum install yum-utils。

(2)下载的文件在当前目录下,可以使用参数--destdir指定下载到哪一个目录。

5)使用yumdownloader下载到的是一个安装包文件rpm,可以使用如下的命令查询rpm中的tar文件:

rpm -qpl coreutils-8.4-37.el6.src.rpm | grep tar

# 输出:coreutils-8.4.tar.xz

6)使用rpm2cpio命令将rpm包文件转换成cpio归档文件,再使用cpio命令,从cpio归档文件复制提取出一个归档文件,出如下:

rpm2cpio coreutils-8.4-37.el6.src.rpm | cpio -idv coreutils-8.4.tar.xz

# 输出:

# coreutils-8.4.tar.xz

# 9561 blocks

cpio的man解释为:cpio copies files into an archive

-i:与--extract等同,提取之意

-d:与--make-directories等同,当有需要时创建一个加载目录

-v:列出文件的处理过程

7)使用tar命令对coreutils-8.4.tar.xz压缩包进行解压缩,如下:

tar -xvf ./coreutils-8.4.tar.xz

至此,命令的源代码获取完成。