CentOS獲取軟件安裝包源碼

  用Linux的一大好處就是不少軟件都是開源的,能夠輕鬆地得到它們的源代碼。閱讀優秀的源代碼是程序員進步的一個很好的途徑。下面就介紹一下如何獲取CentOS下經常使用工具的源碼。程序員

  CentOS、RedHat、Fedora這樣系列的操做系統有一個yumdownloader的工具,能夠下載安裝包及其源碼,例如:centos

  

yumdownloader --source kernel

  上面的語句就會下載到包含內核源碼的安裝包可是我在執行上述語句的時間卻出現「No source RPM for XXX」的提示,後來到網上一查,是由於沒配置好路徑。工具

  要想下載源碼包,咱們就必須先配置好yum的源碼包下載路徑,操做以下(須要root權限):post

  

  1. 打開/etc/yum.repos.d目錄。url

  2. 若是沒有CentOS-Source.repo文件就新建一個,有就備份。spa

  3.往CentOS-Source.repo插入如下內容:操作系統

  

[base-source]
name=CentOS-$releasever - Base Source
baseurl=http://vault.centos.org/6.4/os/Source/
enabled=1

[updates-source]
name=CentOS-$releasever - Updates Source
baseurl=http://vault.centos.org/6.4/updates/Source/
enabled=1

[extras-source]
name=CentOS-$releasever - Extras Source
baseurl=http://vault.centos.org/6.4/extras/Source/
enabled=1

[centosplus-source]
name=CentOS-$releasever - Plus Source
baseurl=http://vault.centos.org/6.4/centosplus/Source/
enabled=1

  PS:個人CentOS是6.4的,請根據本身CentOS的版本修改baseurl,是6.3就把6.4改成6.3便可。code

  修改完成後,還須要如下語句使之生效:blog

  

yum clean all
yum makecache

  執行完成後(出現TimeOut就多執行幾回),咱們就能夠用yumdownloader下載源碼包了。如今另一個問題來了,ls、ping之類的工具在哪一個安裝包裏面呢?源碼

  rpm管理工具能夠幫上忙,能夠查出這些工具所在的安裝包,例以下面這條命令就能夠查出ls所在的安裝包:

rpm -qf `which ls`

  

  PS:引號是Esc下面的那個,並且若是是別名會有問題,因此最好分開成下面這個樣子:

[wkq@localhost /]$ which ls
alias ls='ls --color=auto'
    /bin/ls
[wkq@localhost /]$ rpm -qf /bin/ls
coreutils-8.4-19.el6_4.2.i686

  知道是哪一個軟件包後就能夠用上面的語句下載ls所在的軟件包了:

yumdownloader --source coreutils

  下載到的文件是一個rpm安裝包,還須要如下語句提取源碼:

rpm2cpio coreutils-8.4-19.el6_4.2.src.rpm|cpio -id

  生成的文件之中會有一個壓縮文件,用tar解壓後便可獲得源碼。

相關文章
相關標籤/搜索