centos

centos extract源码在哪

小樊
40
2025-05-02 22:51:36
栏目: 智能运维

在 CentOS 系统中,如果你想提取已安装软件的源代码,通常可以按照以下步骤操作:

使用 yumdownloader 工具下载源码包

  1. 安装 yumdownloader 工具(如果尚未安装):

    sudo yum install yum-utils
    
  2. 下载源码包

    yumdownloader --source <package_name>
    

    例如,下载 coreutils 的源码包:

    yumdownloader --source coreutils-8.5-7.fc14.i686
    
  3. 提取源码包

    • 方法一:使用 rpm 命令查询 tar 文件的位置,然后使用 cpiotar 命令提取源码:
      rpm -qpl coreutils-8.5-7.fc14.src.rpm | grep tar
      # 输出类似:coreutils-8.5.tar.xz
      rpm2cpio coreutils-8.5-7.fc14.src.rpm | cpio -idv coreutils-8.5.tar.xz
      
    • 方法二:直接安装源码包,源码通常会被安装在 /usr/src/redhat 下的各个目录中:
      sudo rpm -i coreutils-8.5-7.fc14.src.rpm
      

使用 yum 源配置文件下载源码

  1. 查看当前的 yum 源配置文件

    cat /etc/yum.repos.d/CentOS-Base.repo
    
  2. 修改配置文件以包含源码: 在文件的末尾添加如下内容,指定源码的源:

    [base-src]
    name=CentOS-$releasever - Base src
    baseurl=http://vault.centos.org/$releasever/os/Source/
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-$releasever
    
    [updates-src]
    name=CentOS-$releasever - Updates src
    baseurl=http://vault.centos.org/$releasever/updates/Source/
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-$releasever
    
    [extras-src]
    name=CentOS-$releasever - Extras src
    baseurl=http://vault.centos.org/$releasever/extras/Source/
    gpgcheck=1
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-$releasever
    
    [centosplus-src]
    name=CentOS-$releasever - Plus src
    baseurl=http://vault.centos.org/$releasever/centosplus/Source/
    gpgcheck=0
    enabled=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-$releasever
    
    [contrib-src]
    name=CentOS-$releasever - Contrib src
    baseurl=http://vault.centos.org/$releasever/contrib/Source/
    gpgcheck=1
    enabled=0
    gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-$releasever
    
  3. 更新 yum 缓存并下载源码

    sudo yum clean all
    sudo yum makecache
    yum install <package_name>-src
    

示例:提取并查看 coreutils 的源码

  1. 下载源码包

    yumdownloader --source coreutils-8.5-7.fc14.i686
    
  2. 提取源码包

    rpm -qpl coreutils-8.5-7.fc14.src.rpm | grep tar
    # 输出类似:coreutils-8.5.tar.xz
    rpm2cpio coreutils-8.5-7.fc14.src.rpm | cpio -idv coreutils-8.5.tar.xz
    
  3. 进入源码目录并查看源码

    cd coreutils-8.5/src
    ls -l
    

通过以上步骤,你可以提取并查看 CentOS 系统中已安装软件的源代码。希望这些信息对你有所帮助。

0
看了该问题的人还看了