1)在使用dpkg時,若出現(xiàn)錯誤,可以使用sudo命令使其以root權(quán)限執(zhí)行。
庫車網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。成都創(chuàng)新互聯(lián)公司從2013年創(chuàng)立到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)公司。
2)使用apt-get source下載的源代碼保存到當(dāng)前目錄下。。此外,當(dāng)我們知道了命令所屬的包后,也可以到相應(yīng)的官方網(wǎng)站下載。
2、CentOS中系統(tǒng)命令源代碼的獲取方法
以32位CentOS6.6下,獲取ls命令的源代碼為例,可以使用如下的方法下載源代碼:
1)配置源代碼的源
在CentOS中,源的配置文件為:/etc/yum.repos.d/CentOS-Base.repo,修改該文件需要root權(quán)限。
用linux一段時間了,有時候想看看ls、cat、more等命令的源代碼,在下載的內(nèi)核源碼中用cscope沒能找到,在網(wǎng)上搜索了一下,將方 法總結(jié)如下:以搜索ls命令源碼為例,先搜索命令所在包,命令如下:
lpj@lpj-linux:~$ which ls /bin/ls用命令搜索該軟件所在包,代碼如下:
lpj@lpj-linux:~$ dpkg -S /bin/ls coreutils: /bin/ls從上一步中可以知道ls命令的實(shí)現(xiàn)在包c(diǎn)oreutils中,用apt安裝(說安裝有些歧義,主要是區(qū)分apt-get -d)該包的源代碼然后解壓,代碼如下:
sudo apt-get source coreutils cd /usr/src/coreutils-XXX #XXX表示版本號 sudo tar zxvf coreutils-XXX.tar.gz 或者只下載源碼,然后手動打補(bǔ)丁再解壓,代碼如下:
sudo apt-get -d source coreutils cd /usr/src tar zxvf coreutils-XXX.tar.gz gzip -d coreutils-XXX.diff.gz #這一步會生成coreutils-XXX.diff文件 patch -p0 coreutils-XXX.diff cd coreutils-XXX tar zxvf coreutils-XXX.tar.gzOK,這幾步執(zhí)行完后,就可以進(jìn)入/usr/src/coreutils-XXX/coreutils-XXX/src中查看各命令對應(yīng)的源代碼了
首先在linux命令行中新建一個目錄 mkdir github(名字可以按你項(xiàng)目名定義),之后敲git命令,確認(rèn)git工具已經(jīng)安裝好了,我使用的是Ubuntu14.04,git工具默認(rèn)安裝好了。若沒有安裝,可以嘗試自行安裝,安裝方法比較簡單。如下圖所示
2
在github查看你所需要使用下載源碼項(xiàng)目的URL地址,比如我下載的openwrt,在github中搜索該項(xiàng)目,可以查看到相關(guān)的URL地址: 復(fù)制下該地址,后面需要使用。如下圖所示
3
在linux命令行中使用 git clone 命令,對該項(xiàng)目源碼clone到本地,等待clone完成。如下圖所示(該項(xiàng)目較大,網(wǎng)絡(luò)不快,還未clone完成,只做參考)
以find命令為例:
第一步,確定命令屬于哪個rpm包:
#rpm -qf /usr/bin/find
findutils-4.1-34
第二步,查找findutils的源碼包findutils-4.1-34.src.rpm,這個一般在發(fā)行版的網(wǎng)站上可以找到(比如FC6的源碼在這里可以找到:)。
也可以到rpmfind.net上查找,輸入rpm包的名字就可以找到相關(guān)的源碼包,有的也可以得到軟件對應(yīng)的網(wǎng)站。
第三步,安裝源碼包:
rpm -ivh findutils-4.1-34.src.rpm
安裝好之后可以到/usr/src/RedHat/SOURCE下找到相關(guān)的源碼包
或者直接編譯源碼包:
rpmbuild -bb findutils-4.1-34.src.rpm
Linux是開源的,它自帶的功能強(qiáng)大的命令也是開源的,也就是說,我們可以獲得這些命令的源代碼并研究它。那究竟如何獲得系統(tǒng)的命令的源代碼呢?
命令的源代碼是一個軟件包為單元的,放在一個軟件包的源代碼中,若要下載一個命令的源代碼,就要把這個命令所屬的軟件包的源代碼都下載下來。命令的源代碼就在下載的源代碼的相關(guān)目錄內(nèi),通常是src目錄,相應(yīng)的主文件名為cmd.c,其中cmd為具體的命令,如ls命令的主程序文件為ls.c??刹殚啞癓inux命令大全”了解Linux命令。
1. 以搜索ls命令源碼為例,先搜索命令所在包,命令如下:
lpj@lpj-linux:~$ which ls
/bin/ls
2. 用命令搜索該軟件所在包,代碼如下:
lpj@lpj-linux:~$ dpkg -S /bin/ls
coreutils: /bin/ls
3. 從上一步中可以知道ls命令的實(shí)現(xiàn)在包c(diǎn)oreutils中,用apt安裝(說安裝有些歧義,主要是區(qū)分apt-get -d)該包的源代碼然后解壓,代碼如下:
sudo apt-get source coreutils
cd /usr/src/coreutils-XXX #XXX表示版本號
sudo tar zxvf coreutils-XXX.tar.gz
或者只下載源碼,然后手動打補(bǔ)丁再解壓,代碼如下:
sudo apt-get -d source coreutils
cd /usr/src
tar zxvf coreutils-XXX.tar.gz
gzip -d coreutils-XXX.diff.gz #這一步會生成coreutils-XXX.diff文件
patch -p0 coreutils-XXX.diff
cd coreutils-XXX
tar zxvf coreutils-XXX.tar.gz
OK,這幾步執(zhí)行完后,就可以進(jìn)入/usr/src/coreutils-XXX/coreutils-XXX/src中查看各命令對應(yīng)的源代碼了