2016 - 2024

感恩一路有你

配置本地yum源一定要createrepo吗 如何获取linux下命令源码?

浏览量:1055 时间:2023-05-21 17:56:53 作者:采采

命令的源代码是以一个软件包为单位,放在一个软件包的源代码中。如果你想下载一个命令的源代码,你必须下载这个命令所属软件包的源代码。命令的源代码在下载的源代码的相关文件夹中。一般是src文件夹,对应的主文件名是cmd.c,其中cmd是详细的命令,比如ls命令的主程序文件是ls.c

因为在不同的Linux发行版上。源代码不是以同样的获得的。所以以下面两个常用的Linux发行版Ubuntu和CentOS为例来说明。

1.Ubuntu中获取系统命令源代码的方法。

以32位Ubuntu14.04获取ls命令源代码为例,可以通过以下方法下载源代码:

1)使用哪个命令查看ls命令的位置,如下所示:

哪个ls #输出:/bin/ls

2)使用dpkg命令查询ls命令所属的包。例如,以下内容:

Dpkg -S /bin/ls #输出:/Bin/LS.

3)使用apt-get命令下载ls命令所在包的源代码。例如,以下内容:

apt-get source coreutils

注意:

1)使用dpkg时。如果有错误。您可以使用sudo命令以root权限运行它。

2)将使用apt-get source下载的源代码保存到当前文件夹。

。另外,当我们知道命令属于哪个包的时候,也可以从相应的官网下载。

2.CentOS中获取系统命令源代码的方法。

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

1)配置源代码的来源

在CentOS中,源的配置文件是:,更改此文件需要root权限。

打开文件并检查文件的内容。在我的电脑上,该文件的内容如下:

#

#

#镜像系统使用客户端的连接IP地址

#更新每个镜像的状态,以选择更新到和的镜像

#地理上靠近客户。你应该用这个来更新CentOS

#除非您手动选择其他镜像ors。

#

#如果镜像列表对您不起作用,作为退路,您可以尝试

#改为注释掉baseurl行。

#

#

[基本]

nameCentOS-$releasever - Base

$ releaseveramparch $ basearchamprepoos

#$releasever/os/$basearch/

gpgcheck1

///etc/PKI/RPM-gpg/RPM-GPG-KEY-CentOS-6

#发布的更新

[更新]

nameCentOS-$releasever -更新

$ releaseveramparch $ basearchamprepoupdates

# $ release ver/updates/$ base arch/

gpgcheck1

///etc/PKI/RPM-gpg/RPM-GPG-KEY-CentOS-6

#可能有用的附加软件包

[临时演员]

nameCentOS-$releasever - Extras

发布$ releaseveramparch $ basearchamprepoextras

#$releasever/extras/$basearch/

gpgcheck1

///etc/PKI/RPM-gpg/RPM-GPG-KEY-CentOS-6

#扩展现有软件包功能的附加软件包

[centosplus]

nameCentOS-$releasever - Plus

$ releaseveramparch $ basearchamprepocentosplus

# $ release ver/centosplus/$ base arch/

gpgcheck1

启用0

///etc/PKI/RPM-gpg/RPM-GPG-基-森特-6

# Centos用户的贡献包

[贡献]

nameCentOS-$releasever - Contrib

$ releaseveramparch $ basearchamprepocontrib

# $ release ver/contrib/$ base arch/

gpgcheck1

启用0

///etc/PKI/RPM-gpg/RPM-GPG-KEY-CentOS-6

这个文件中有两个变量:releasever和basearch。分别代表发布版本号和分支。比如在我的电脑上,这两个值分别是6和i386。注意。Releasever没有细分为次要版本号。也就是说,它赢了 不要6.6什么的。

从这个文件的内容可以看出,这个文件总共有5个部分。也就是说我的电脑有五个软件源,分别是base、updates、extras、centosplus和contrib。因此只需要指定其源代码的来源,例如以下五个软件来源。例如,在文件末尾添加以下内容:

[base-src]

nameCentOS-$releasever - Base src

gpgcheck1

///etc/PKI/RPM-gpg/RPM-GPG-KEY-CentOS-6

[更新-src]

nameCentOS-$releasever -更新src-centos

gpgcheck1

///etc/PKI/RPM-gpg/RPM-GPG-KEY-CentOS-6

[附加服务-src]

nameCentOS-$ releasever-Extras src-centos

gpgcheck1

///etc/PKI/RPM-gpg/RPM-GPG-KEY-CentOS-6

[centosplus-src]

name centos-$ release ver-Plus src-centos

gpgcheck1

///etc/PKI/RPM-gpg/RPM-GPG-KEY-CentOS-6

[contrib-src]

nameCentOS-$ release ver-Contrib src-centos

gpgcheck1

///etc/PKI/RPM-gpg/RPM-GPG-KEY-CentOS-6

因为不同的版本号设置会有所不同,所以其设置也会有所不同,方法可以概括如下:

(1)1)gpgkey与本文档中现有部分的gpg key相同。

(2)为了确认档案的存在和情况,可以打开站点查看详细情况,然后根据详细情况填写。

(3)设置baseurl时,要根据自己系统的版本号来设置。如果我的机器是CentOS-6.6,设置时相关参数会设置为6.6。也就是后面的子路径是6.6。

这个文件的目的是为yum及其相关作品的下载提供一个源码。例如,当使用yumdownloader(下面讨论)下载源代码时。例如,将发生以下操作:

(1)下载$baseurl/repodata/repomd.xml文件。如果repomd.xml文件比系统中的文件新。更新系统中相应的repomd.xml。

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

2)使用哪个命令查看ls命令的位置,如下所示:

哪个是

#输出:/bin/ls

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

rpm -qf /bin/ls

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

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

yum downloader-source coreutils-8.4-37 . el6 . i686

注意:

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

(2)下载的文件在当前文件夹中。您可以使用参数- destdir来指定下载到哪个文件夹。

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

rpm -qpl | grep tar

# output: coreutils-8.4.tar.xz

6)使用rpm2cpio命令将rpm包文件转换为cpio存档文件,然后使用cpio命令从cp下载Io归档副本提取归档文件。举以下例子:

rpm2 cpio | cpio-idv coreutils-8.4 . tar . xz

#输出:

# coreutils-8.4.tar.xz

# 9561街区

Cpio s man解释为:cpio将文件复制到一个存档中

-i:相当于- extract。提取的含义

-d:相当于-make-directory,必要时创建一个加载文件夹。

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

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

tar -xvf。/

1.上传操作系统镜像CentOS-6.5-x86_到/tmp.2 .建立目录,挂载镜像mkdir/mnt/cdrom mount-oloop/tmp/CentOS-6.5-x86 _/mnt/cdrom/3。设置本地报告[本地基础]。///mnt/cdrom gpg check 0 eof 4。验证源YUM报告列表。

文件 命令 源代码 KEY-CentOS

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。