当前位置: 首页
系统平台
CentOS系统中如何获取命令源代码的详细操作步骤

CentOS系统中如何获取命令源代码的详细操作步骤

热心网友 时间:2026-06-23
转载

以32位CentOS 6.6环境为例,获取ls命令的源代码其实并不复杂。下面一步一步走通整个流程,关键步骤会给出细节和注意事项。

1)配置源代码源

CentOS中,yum的源配置文件在 /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=$releasever&arch=$basearch&repo=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=$releasever&arch=$basearch&repo=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=$releasever&arch=$basearch&repo=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=$releasever&arch=$basearch&repo=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=$releasever&arch=$basearch&repo=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,分别代表发行版本和体系结构。例如在32位CentOS 6.6上,它们的值分别是6i386。注意releasever不会细分到次级版本(不会出现6.6),它只到主版本号。

从文件内容来看,共有5个软件源小节:baseupdatesextrascentospluscontrib。我们需要为每一个源都添加一个对应的源代码源。在文件末尾追加以下内容:

[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

不同版本的配置略有差异,但遵循几个通用原则:

  • gpgkey与已有节中的gpgkey保持一致。
  • 配置前可以先打开 http://vault.centos.org/ 看看具体目录结构,确认存在对应的Source子目录。
  • baseurl中的版本号要对应实际系统版本,例如CentOS 6.6就用6.6

这段配置的作用是让yum及其相关工具能够找到源代码包。当之后用yumdownloader下载源代码时,实际上会执行以下动作:

  1. 下载 $baseurl/repodata/repomd.xml 文件,如果比本地的新则更新。
  2. $baseurl/SPackages/ 中下载对应的源代码rpm包。

2)找到ls命令的位置

使用which命令:

which ls

输出:/bin/ls

3)查询ls所属的rpm包

rpm -qf命令:

rpm -qf /bin/ls

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

4)使用yumdownloader下载源代码rpm

yumdownloader是专门从yum源下载rpm包的工具(需要先安装yum-utils包)。执行:

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

几点说明:

  • 如果系统未安装yumdownloader,先执行 yum install yum-utils
  • 默认下载到当前目录,可以用参数 --destdir 指定目标路径。

5)查看源代码rpm中包含的tar包

下载到的文件是coreutils-8.4-37.el6.src.rpm。用rpm -qpl列出内容并过滤出tar文件:

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

输出:coreutils-8.4.tar.xz

6)从src.rpm中提取tar.xz

使用rpm2cpio配合cpio命令:

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

输出:

coreutils-8.4.tar.xz
9561 blocks

参数说明:

  • -i--extract:提取文件
  • -d--make-directories:必要时创建目录
  • -v:显示处理过程

7)解压tar.xz得到源代码

最后一步,解压缩:

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

至此,coreutils(其中包含ls命令)的完整源代码就全部准备好了。

来源:https://www.jb51.net/os/RedHat/532649.html

游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

同类文章
更多
Win11频繁断网提示默认网关不可用怎么办

Win11频繁断网提示默认网关不可用怎么办

先聊聊一个很常见的问题:Windows 11 电脑刚连接 Wi-Fi 或插上网线时还能正常访问网络,可几分钟后突然“掉线”,任务栏右下角出现“无 Internet”提示,右键诊断显示“默认网关不可用”。这时候重启电脑或点击“修复”能暂时恢复,但用不了多久又会断开。这说明系统其实已经获得了 IP 地址

时间:2026-07-03 07:44
Mac如何取消正在进行的系统备份任务

Mac如何取消正在进行的系统备份任务

Mac 正在执行时间机器备份时,进度条卡在“正在准备”或“备份中”迟迟不动,磁盘读写与网络带宽被持续占用——这种情形下,大多数用户都希望能立即中断任务。设想这样一个场景:你正赶着安装大型软件,或者急需拔出外接硬盘,但系统却执意继续备份。别担心,这里有一套行之有效的解决方案:先在“活动监视器”中强制退

时间:2026-07-03 07:44
电脑显示器刷新率锁死60Hz无法调整的解决方法

电脑显示器刷新率锁死60Hz无法调整的解决方法

显示器刷新率锁死60Hz时,需检查DP或HDMI线缆版本并更换VESA认证线缆;可通过显示适配器属性勾选隐藏刷新率选项、显卡控制面板自定义时序、清洁安装驱动或使用CRU工具修改EDID强制启用高刷模式。

时间:2026-07-03 07:43
Linux系统下Systemd服务管理从零开始方法步骤详解完整教程

Linux系统下Systemd服务管理从零开始方法步骤详解完整教程

systemctl管理systemd服务,修改配置于 etc systemd system,启用需daemon-reload再enable。查看状态关注Loaded行,masked服务需unmask并重载恢复。reload发SIGHUP,restart中断连接,reload-or-restart自动降级。日常禁用优先用disable。

时间:2026-07-03 07:43
Mac如何取消同步iPhone书签和历史记录

Mac如何取消同步iPhone书签和历史记录

彻底关闭iCloudSafari同步并选择“保留在Mac上”,然后手动删除书签文件夹或清理~ Library Safari Bookmarks plist文件,最后通过iCloud官网确认同步已失效,即可彻底清除Mac上的iPhone同步书签。

时间:2026-07-03 07:43
热门专题
更多
刀塔传奇破解版无限钻石下载大全 刀塔传奇破解版无限钻石下载大全
洛克王国正式正版手游下载安装大全 洛克王国正式正版手游下载安装大全
思美人手游下载专区 思美人手游下载专区
好玩的阿拉德之怒游戏下载合集 好玩的阿拉德之怒游戏下载合集
不思议迷宫手游下载合集 不思议迷宫手游下载合集
百宝袋汉化组游戏最新合集 百宝袋汉化组游戏最新合集
jsk游戏合集30款游戏大全 jsk游戏合集30款游戏大全
宾果消消消原版下载大全 宾果消消消原版下载大全
  • 日榜
  • 周榜
  • 月榜