下面我就總結了下:大概就是源碼都存放在相應的包裏面。
新利得裏我搜了下coreutils,顯示已經安裝,不過這裏安裝的應該是軟件,也就是命令的執行文件吧應該。但是我沒有找到它是否安裝了src,也就是源代碼。
PS: Coreutils軟件包含有用於展示和設置基本系統特性的工具。
具體過程一(Linux rwind-ubuntu 2.6.22-14-generic):
1.首先找到你想查看的命令屬於哪個包
rwind@rwind-ubuntu:~$ dpkg -S `which ls` coreutils: /bin/ls |
同樣:
rwind@rwind-ubuntu:~/source$ dpkg -S `which which` debianutils: /usr/bin/which |
我第一次犯的錯誤:把``用成‘’了,這兩種不一樣阿,前一個是數字鍵1左邊的引號,作用是在shell重組命令行時把``裏面的內容當作命令來執行並替換爲結果。
2.下載相應的源碼包
rwind@rwind-ubuntu:~/source$ apt-get -d source "debianutils" 正在讀取軟件包列表... 完成 正在分析軟件包的依賴關係樹 讀取狀態信息... 完成 需要下載 134kB 的源代碼包。 獲取:1 http://ubuntu.cn99.com feisty/main debianutils 2.17.4build1 (dsc) [479B] 獲取:2 http://ubuntu.cn99.com feisty/main debianutils 2.17.4build1 (tar) [133kB] 下載 134kB,耗時 1s (90.7kB/s) 下載完畢,目前是“僅下載”模式 |
3.把你下載的包解壓縮,自己去裏面找吧,文件挺多的,都什麼作用我不清楚,留待以後慢慢研究慢慢發現。
另外:在網上還發現一些資料,但我都沒驗證,
原文如下:
apt-get install apt-file apt-file update apt-file search /bin/ls 這樣可以知道ls是coreutils提供的 然後apt-get source coreutils就得到源碼了 當然對於ls,還可以用dpkg -S /usr/ls 來查詢它屬於哪一個包,不過dpkg -S只對已安裝的包有效 |
二:這是我在網上搜的rpm包格式的。
以find命令爲例: 第一步,確定命令屬於哪個rpm包: #rpm -qf /usr/bin/find findutils-4.1-34 第二步,查找findutils的源碼包findutils-4.1-34.src.rpm,這個一般在發行版的網站上可以找到 第三步,安裝源碼包: rpm -ivh findutils-4.1-34.src.rpm 安裝好之後可以到/usr/src/RedHat/SOURCE下找到相關的源碼包 |
大概就是這樣了,以後發現有不足的地方還會補充,如果您有什麼建議或發現錯誤,希望可以指點指點。謝謝。