• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    CentOS系统如何获取命令的源代码

    以32位CentOS6.6下,获取ls命令的源代码为例,可以使用如下的方法下载源代码:

    1)配置源代码的源

    在CentOS中,源的配置文件为:/etc/yum.repos.d/CentOS-Base.repo,修改该文件需要root权限。

    打开该文件,查看该文件的内容,在本人的机子上,该文件的内容如下:

    # CentOS-Base.repo  
    #  
    # The mirror system uses the connecting IP address of the client and the  
    # update status of each mirror to pick mirrors that are updated to and  
    # geographically close to the client.  You should use this for CentOS updates  
    # unless you are manually picking other mirrors.  
    #  
    # If the mirrorlist= does not work for you, as a fall back you can try the   
    # remarked out baseurl= line instead.  
    #  
    #  
      
    [base]  
    name=CentOS-$releasever - Base  
    mirrorlist=http://mirrorlist.centos.org/?release=$releaseverarch=$basearchrepo=os  
    #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/  
    gpgcheck=1  
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6  
      
    #released updates   
    [updates]  
    name=CentOS-$releasever - Updates  
    mirrorlist=http://mirrorlist.centos.org/?release=$releaseverarch=$basearchrepo=updates  
    #baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/  
    gpgcheck=1  
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6  
      
    #additional packages that may be useful  
    [extras]  
    name=CentOS-$releasever - Extras  
    mirrorlist=http://mirrorlist.centos.org/?release=$releaseverarch=$basearchrepo=extras  
    #baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/  
    gpgcheck=1  
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6  
      
    #additional packages that extend functionality of existing packages  
    [centosplus]  
    name=CentOS-$releasever - Plus  
    mirrorlist=http://mirrorlist.centos.org/?release=$releaseverarch=$basearchrepo=centosplus  
    #baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/  
    gpgcheck=1  
    enabled=0  
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6  
      
    #contrib - packages by Centos Users  
    [contrib]  
    name=CentOS-$releasever - Contrib  
    mirrorlist=http://mirrorlist.centos.org/?release=$releaseverarch=$basearchrepo=contrib  
    #baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/  
    gpgcheck=1  
    enabled=0  
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6  

    该文件中有两个变量:releasever和basearch,分别表示release版本和分支,如本人的机子上,这两个值分别为6和i386。注意,releasever并不会细分为次级版本,即不会是6.6之类的。

    从该文件的内容可以知道,该文件共有5个节,也就是说本人的机子的软件来源有5处,分别为base、updates、extras、centosplus和contrib。所以只需要为如下的5处软件源指定其源代码的源即可。在文件的末尾加上如下的内容:

    [base-src]  
    name=CentOS-$releasever - Base src  
    baseurl=http://vault.centos.org/6.6/os/Source/  
    gpgcheck=1  
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6  
      
    [updates-src]  
    name=CentOS-$releasever - Updates src-centos  
    baseurl=http://vault.centos.org/6.6/updates/Source/  
    gpgcheck=1  
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6  
      
    [extras-src]  
    name=CentOS-$releasever -  Extras src-centos  
    baseurl=http://vault.centos.org/6.6/extras/Source/  
    gpgcheck=1  
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6  
      
    [centosplus-src]  
    name=CentOS-$releasever - Plus src-centos  
    baseurl=http://vault.centos.org/6.6/centosplus/Source/  
    gpgcheck=1  
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6  
      
    [contrib-src]  
    name=CentOS-$releasever - Contrib src-centos  
    baseurl=http://vault.centos.org/6.6/contrib/Soruce/  
    gpgcheck=1  
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

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

    (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

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

    上一篇:CentOS7如何手工创建自己的YUM仓库?
    下一篇:CentOS7下Xfs文件系统的相关操作详解
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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