在 CentOS 系统中,如果你想提取已安装软件的源代码,通常可以按照以下步骤操作:
yumdownloader
工具下载源码包安装 yumdownloader
工具(如果尚未安装):
sudo yum install yum-utils
下载源码包:
yumdownloader --source <package_name>
例如,下载 coreutils
的源码包:
yumdownloader --source coreutils-8.5-7.fc14.i686
提取源码包:
rpm
命令查询 tar
文件的位置,然后使用 cpio
和 tar
命令提取源码: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
源配置文件下载源码查看当前的 yum
源配置文件:
cat /etc/yum.repos.d/CentOS-Base.repo
修改配置文件以包含源码: 在文件的末尾添加如下内容,指定源码的源:
[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
更新 yum
缓存并下载源码:
sudo yum clean all
sudo yum makecache
yum install <package_name>-src
coreutils
的源码下载源码包:
yumdownloader --source coreutils-8.5-7.fc14.i686
提取源码包:
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
进入源码目录并查看源码:
cd coreutils-8.5/src
ls -l
通过以上步骤,你可以提取并查看 CentOS 系统中已安装软件的源代码。希望这些信息对你有所帮助。