配置本地yum源一定要createrepo吗 如何获取linux下命令源码?
命令的源代码是以一个软件包为单位,放在一个软件包的源代码中。如果你想下载一个命令的源代码,你必须下载这个命令所属软件包的源代码。命令的源代码在下载的源代码的相关文件夹中。一般是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报告列表。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。