如何安裝套件

dpkg 安裝

在「DEB-based」的系統裡,最基本的安裝套件的方式, 是透過「dpkg」這個指令,來安裝「Debian Package」。

以安裝「hello」這個套件為例。

先下載「hello_2.8-4_amd64.deb」這個「Debian Package」。

$ wget -c http://tw.archive.ubuntu.com/ubuntu/pool/main/h/hello/hello_2.8-4_amd64.deb

利用「dpkg」來安裝「hello_2.8-4_amd64.deb」

$ sudo dpkg -i hello_2.8-4_amd64.deb

基本上,上面的步驟,應該不會出現相依不足的問題。 「hello」這個套件,相依的套件,應該是很基本的,都已經早就安裝再系統裡了。

除了可以從「網頁」上觀看

可以執行下面的指令查看相依的資訊。

$ dpkg -I hello_2.8-4_amd64.deb | grep Depends:

會顯示

 Depends: libc6 (>= 2.14), dpkg (>= 1.15.4) | install-info

你可以查詢「相依的套件」,是否「已經事先安裝在系統裡」,還有「安裝在系統的版本」。

以「libc6」為例

執行

$ dpkg -l libc6

$ dpkg -l | grep libc6

若相依的套件,若沒有事先安裝在系統裡。 執行「apt-get install」, 系統會給一個提示, 請你執行「apt-get install -f」。

這時候你只要執行

$ sudo apt-get install -f

就可以把相依的套件給安裝補足。

注意:

  • 目前實務上,下載「deb」檔來安裝的,有「skype」和「teamviewer」。
  • 印象中「skype」通常安裝後,需要執行「sudo apt-get install -f」。
  • 「sudo apt-get install -f」也不是萬靈丹,有時侯系統提示你要執行這個指令,但是卻無法解決問題。 這個目前發現的案例是「OpenOffice」和「LibreOffice」,請參考「這篇」和「這篇」討論。 還有若要補足的套件,不在套件庫上,也是會失靈的。

apt-get 安裝

上面的方式是基本的安裝,但有些問題需要被解決,所以又發展了另一套工具「apt」。

若想要安裝「hello」這個套件。

只要執行

$ sudo apt-get install hello

就會到系統事先設定好的套件庫去下載「hello」這個套件下來,

除了安裝「hello」這個套件外,還會額外安裝「hello」相依的套件。

通常執行「sudo apt-get install hello」 或是執行「sudo apt-get install hello -d」, 從套件庫下載下來的「deb檔」會放在「/var/cache/apt/archives/」這個資料夾

你可以執行下面的指令查看

$ ls /var/cache/apt/archives/hello_2.8-4_amd64.deb -l

更多案例