佳木斯湛栽影视文化发展公司

主頁(yè) > 知識(shí)庫(kù) > CentOS系統(tǒng)如何獲取命令的源代碼

CentOS系統(tǒng)如何獲取命令的源代碼

熱門標(biāo)簽:硅谷的囚徒呼叫中心 電話機(jī)器人搭建 百度競(jìng)價(jià)點(diǎn)擊價(jià)格的計(jì)算公式 美團(tuán) 解決方案 外呼系統(tǒng) 服務(wù)器配置 家政服務(wù)網(wǎng)絡(luò)

以32位CentOS6.6下,獲取ls命令的源代碼為例,可以使用如下的方法下載源代碼:

1)配置源代碼的源

在CentOS中,源的配置文件為:/etc/yum.repos.d/CentOS-Base.repo,修改該文件需要root權(quán)限。

打開該文件,查看該文件的內(nèi)容,在本人的機(jī)子上,該文件的內(nèi)容如下:

# 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=$releaseverarch=$basearchrepo=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=$releaseverarch=$basearchrepo=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=$releaseverarch=$basearchrepo=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=$releaseverarch=$basearchrepo=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=$releaseverarch=$basearchrepo=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  

該文件中有兩個(gè)變量:releasever和basearch,分別表示release版本和分支,如本人的機(jī)子上,這兩個(gè)值分別為6和i386。注意,releasever并不會(huì)細(xì)分為次級(jí)版本,即不會(huì)是6.6之類的。

從該文件的內(nèi)容可以知道,該文件共有5個(gè)節(jié),也就是說(shuō)本人的機(jī)子的軟件來(lái)源有5處,分別為base、updates、extras、centosplus和contrib。所以只需要為如下的5處軟件源指定其源代碼的源即可。在文件的末尾加上如下的內(nèi)容:

[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

由于不同的版本設(shè)置會(huì)有所不同,所以其設(shè)置會(huì)有所不同,方法可總結(jié)為如下:

(1)gpgkey與該文件中已有的節(jié)的gpgkey相同

(2)為了確認(rèn)文件的存在和情況,可以打開網(wǎng)站http://vault.centos.org/查看具體的情況,再根據(jù)具體的情況來(lái)填寫

(3)設(shè)置baseurl時(shí)需要根據(jù)自己的系統(tǒng)的版本來(lái)設(shè)置,如本人的機(jī)子為CentOS-6.6,則在設(shè)置時(shí),相關(guān)的參數(shù)就設(shè)置為6.6,即http://vault.centos.org/后接的子路徑為6.6。

該文件的作用是為yum其及相關(guān)工作的下載提供一個(gè)源,如在使用yumdownloader(下面會(huì)講到)下載源代碼時(shí),會(huì)發(fā)生如下動(dòng)作:

(1)下載$baseurl/repodata/repomd.xml文件,若該repomd.xml文件比系統(tǒng)中的新,更新系統(tǒng)中的相應(yīng)的repomd.xml

(2)下載$baseurl/SPackages/中的相應(yīng)的源代碼rpm包。

2)使用which命令查看ls命令的位置,如下:

which ls

# 輸出:/bin/ls

3)使用rpm命令查詢ls命令所屬的包,如下:

rpm -qf /bin/ls

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

4)yumdownloader是一個(gè)從RPM源下載RPM的程序,可以使用yumdownloader命令安裝源代碼,如下:

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

注:

(1)若yumdownloader命令沒有安裝,則可以使用此命令安裝:yum install yum-utils。

(2)下載的文件在當(dāng)前目錄下,可以使用參數(shù)--destdir指定下載到哪一個(gè)目錄。

5)使用yumdownloader下載到的是一個(gè)安裝包文件rpm,可以使用如下的命令查詢r(jià)pm中的tar文件:

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

# 輸出:coreutils-8.4.tar.xz

6)使用rpm2cpio命令將rpm包文件轉(zhuǎn)換成cpio歸檔文件,再使用cpio命令,從cpio歸檔文件復(fù)制提取出一個(gè)歸檔文件,出如下:

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

# 輸出:

# coreutils-8.4.tar.xz

# 9561 blocks

cpio的man解釋為:cpio copies files into an archive

-i:與--extract等同,提取之意

-d:與--make-directories等同,當(dāng)有需要時(shí)創(chuàng)建一個(gè)加載目錄

-v:列出文件的處理過程

7)使用tar命令對(duì)coreutils-8.4.tar.xz壓縮包進(jìn)行解壓縮,如下:

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

至此,命令的源代碼獲取完成。

標(biāo)簽:南昌 邢臺(tái) 撫州 北海 臨沂 防城港 韶關(guān) 烏蘭察布

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《CentOS系統(tǒng)如何獲取命令的源代碼》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    定陶县| 隆尧县| 株洲县| 扬中市| 桐城市| 高平市| 台南市| 河池市| 会理县| 鄂伦春自治旗| 无锡市| 娄烦县| 晋江市| 谷城县| 台北市| 鄂伦春自治旗| 米泉市| 普兰店市| 庐江县| 定远县| 花垣县| 株洲市| 梁平县| 平阴县| 佛冈县| 临颍县| 胶州市| 大安市| 根河市| 珲春市| 密云县| 巴中市| 诸城市| 太白县| 潮州市| 晋州市| 南昌市| 美姑县| 兴和县| 萝北县| 许昌县|