Ubuntu環境下,如何下載「Source Package」
測試環境
以下測試是在「Xubuntu 14.04 64位元」。
前提
以「hello」這個「Package」為例。
方式一
執行「apt-get source」下載「hello」這個套件的「Source Package」。
1 | $ apt-get source hello |
顯示下列的訊息
1 | Reading package lists... Done |
其中有一行訊息
1 | Check if the 'dpkg-dev' package is installed. |
從上面的訊息可以知道,少裝了「dpkg-dev」這個套件。
基本上「hello」的「Source Package」是有下載下來
1 | $ ls -1 |
顯示
1 | hello_2.8-4.debian.tar.gz |
但是是在解開的時候出現問題。
上面的訊息有一行
1 | Unpack command 'dpkg-source -x hello_2.8-4.dsc' failed. |
所以先安裝「dpkg-dev」這個套件
1 | $ sudo apt-get install dpkg-dev |
再執行一次
1 | $ apt-get source hello |
這次顯示的訊息
1 | Reading package lists... Done |
觀看有哪些檔案
1 | $ ls -1 |
會顯示
1 | hello-2.8 |
額外一提
通常安裝「build-essential」這個「Metapackage」時,就會安裝「dpkg-dev」這個套件了。
可以執行下面的指令驗證看看
1 | $ apt-cache show build-essential | grep Depends: |
就會顯示
1 | Depends: libc6-dev | libc-dev, gcc (>= 4:4.4.3), g++ (>= 4:4.4.3), make, dpkg-dev (>= 1.13.5) |
或是執行
1 | $ apt-cache rdepends dpkg-dev | grep build-essential |
會顯示
1 | build-essential |
source.list
要執行「apt-get source」這個動作,還有一個要注意的,就是「/etc/apt/sources.list」,裡面要有「deb-src」開頭的設定,設定Source Repository。
例如下面這一行
1 | deb-src http://tw.archive.ubuntu.com/ubuntu/ trusty main restricted universe multivers |
更多參考
Source Repository 的 UI設定的方式,可以參考這篇「Linux Mint 如何加入 Source Repository」
Debian Reference / Chapter 2. Debian package management / 2.1.4. Debian archive basics
- Debian Wiki / SourcePackage
方式二
直接到下面的頁面,找到網址下載,以下是以「14.04(trusty)」為例。
https://packages.ubuntu.com/source/trusty/hello
用瀏覽器開啟頁面,
執行
1 | $ lynx http://packages.ubuntu.com/source/trusty/hello |
或是執行
1 | $ firefox http://packages.ubuntu.com/source/trusty/hello |
下面有一個「Download hello」,有列三個檔
1 | File Size (in kB) MD5 checksum |
執行下面指令下載下來
1 | wget -c http://archive.ubuntu.com/ubuntu/pool/main/h/hello/hello_2.8-4.dsc |
或是將下面三行
1 | http://archive.ubuntu.com/ubuntu/pool/main/h/hello/hello_2.8-4.dsc |
存成一個檔叫「list.txt」。
1 | $ vi list.xt |
存檔後,執行下面指令下載
1 | $ wget -c -i list.txt |
下載完成
1 | $ ls -1 |
一樣可以看到三個檔
1 | hello_2.8-4.debian.tar.gz |
然後利用「dpkg-source」這個指令解開。
1 | $ dpkg-source -x hello_2.8-4.dsc |
就可以看到下面的訊息
1 | dpkg-source: info: extracting hello in hello-2.8 |
並且多出一個資料夾「hello-2.8」
1 | $ ls -1 |
顯示
1 | hello-2.8 |
基本上,「方式二」這個流程,跟「方式一」是一樣的,只是利用一個指令就搞定了 :-)
另外也可以到下面這個網址,觀看hello有哪些檔案。
https://archive.ubuntu.com/ubuntu/pool/main/h/hello/
用瀏覽器開啟頁面,
執行
1 | $ lynx http://archive.ubuntu.com/ubuntu/pool/main/h/hello/ |
或是執行
1 | $ firefox http://archive.ubuntu.com/ubuntu/pool/main/h/hello/ |