Ubuntu環境下,如何安裝套件
dpkg 安裝
在「DEB-based」的系統裡,最基本的安裝套件的方式,
是透過「dpkg」這個指令,來安裝「Debian Package」。
以安裝「hello」這個套件為例。
先下載「hello_2.8-4_amd64.deb」這個「Debian Package」。
1 | $ 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」
1 | $ sudo dpkg -i hello_2.8-4_amd64.deb |
基本上,上面的步驟,應該不會出現相依不足的問題。
「hello」這個套件,相依的套件,應該是很基本的,都已經早就安裝再系統裡了。
除了可以從「網頁」上觀看
可以執行下面的指令查看相依的資訊。
1 | $ dpkg -I hello_2.8-4_amd64.deb | grep Depends: |
會顯示
1 | Depends: libc6 (>= 2.14), dpkg (>= 1.15.4) | install-info |
你可以查詢「相依的套件」,是否「已經事先安裝在系統裡」,還有「安裝在系統的版本」。
以「libc6」為例
執行
1 | $ dpkg -l libc6 |
或
1 | $ dpkg -l | grep libc6 |
若相依的套件,若沒有事先安裝在系統裡。
執行「apt-get install」,
系統會給一個提示,
請你執行「apt-get install -f」。
這時候你只要執行
1 | $ 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」這個套件。
只要執行
1 | $ sudo apt-get install hello |
就會到系統事先設定好的套件庫去下載「hello」這個套件下來,
除了安裝「hello」這個套件外,還會額外安裝「hello」相依的套件。
通常執行「sudo apt-get install hello」
或是執行「sudo apt-get install hello -d」,
從套件庫下載下來的「deb檔」會放在「/var/cache/apt/archives/」這個資料夾
你可以執行下面的指令查看
1 | $ ls /var/cache/apt/archives/hello_2.8-4_amd64.deb -l |