天天看點

Linux下檢視并下載下傳指令源碼包(根據指令/應用程式逆向擷取并且安裝其所屬源碼包) CentOS等rpm包管理器 Ubuntu等deb包 其他發行版

使用linux的過程中,我們會熟悉各種指令,偶爾我們不禁會問,這些指令是怎麼實作的,學習他們其實是學習linux進階系統程式設計很快捷的方法。

這些指令的源碼肯定是存放在相應的包裡面,但是是哪些包呢?

發行版的包管理器為我們提供了很友善的指令接口,供我們查找我們指定指令所在的包

比如我們以最普通的uname指令來說明,

使用我們使用whereis或者which指令可以查找指令的絕對位置

通過rpm或者dpkg指令搜尋指令所屬的包資訊

下載下傳并安裝對應的源碼source包,即可得到源碼

怎麼檢視某個指令的源代碼

比如想檢視uname這個指令的源代碼

1

2

3

4

5

6

7

8

9

Linux下檢視并下載下傳指令源碼包(根據指令/應用程式逆向擷取并且安裝其所屬源碼包) CentOS等rpm包管理器 Ubuntu等deb包 其他發行版
[問題1] 沒有yumdownloader 的話可以這樣子安裝

下載下傳了源碼包以後有兩種方法可以檢視到源碼包,

第一種方法

第二種方法:安裝源碼包

centos和rhel一般安裝後的源碼在/usr/src/redhat下的各個目錄下,但fedora是在~/rpmbuild/sources/

可以通過locate指令查詢代碼包被安裝到哪裡了

locate coreutils*tar

/home/workhard/tmp/coreutils-8.5.tar.xz

/home/workhard/rpmbuild/sources/coreutils-8.5.tar.xz

cd /home/workhard/rpmbuild/sources/c

安裝*.src.rpm後怎麼解除安裝

Linux下檢視并下載下傳指令源碼包(根據指令/應用程式逆向擷取并且安裝其所屬源碼包) CentOS等rpm包管理器 Ubuntu等deb包 其他發行版

yumdownloader comes from the yum-utils package, if you don’t have that installed already.

yum install yum-utils

顧名思義,rpm2cpio是将rpm封包件轉換成cpio歸檔檔案

cpio - copy files to and from archives

與redhat系列的rpm包不同,ubuntu使用的是debian的deb包,是以搜尋和安裝的方式略有不同,但是思路是一樣的

找到想看源碼的指令屬于哪個包:

coreutils: /bin/cp

下載下傳源碼:

其實我們從上面的過程就可以看到,大多數的指令源碼都是在包coreutils中的,其他發行版直接下載下傳即可

<a href="http://ftp.gnu.org/gnu/coreutils/">http://ftp.gnu.org/gnu/coreutils/</a>

coreutils 是gnu下的一個軟體包,包含linux下的 ls等常用指令。這些指令的實作要依賴于shell程式。 gnu/coreutils 是一組類 unix 作業系統所需的基礎軟體包。它包含三組指令,常用的指令如 cat、ls、rm。

對于其他一些非标準的包,我們可以采用同樣的方法,因為這些指令必然我們安裝的包或者應用程式所自帶的,比如git

Linux下檢視并下載下傳指令源碼包(根據指令/應用程式逆向擷取并且安裝其所屬源碼包) CentOS等rpm包管理器 Ubuntu等deb包 其他發行版

再比如top指令等,就位于procps包中

轉載:http://blog.csdn.net/gatieme/article/details/51353648

繼續閱讀