天天看點

Ubuntu軟體安裝指南:dpkg、apt 與源碼包安裝

基礎知識:

通常情況下,linux會這樣放軟體的元件(一般規範):

程式的文檔->/usr/share/doc; /usr/local/share/doc

程式->/usr/share; /usr/local/share

程式的啟動項->/usr/share/apps; /usr/local/share

程式的語言包->/usr/share/locale; /usr/local/share/locale

可執行檔案->/usr/bin; /usr/local/bin

而有的軟體為了和系統元件分隔開,選擇栖息于 /opt,但目錄結構往往是一樣的,把/usr或/usr/local 替換為了/opt/"軟體名"

DPKG 

Linux 系統中,軟體通常以源代碼或者預編譯包的形式提供。 

軟體源代碼需要編譯為二進制的機器代碼才能夠使用,安裝比較耗時,不過您可以自行調節編譯選項,決定需要的功能或元件,或者針對硬體平台作一些優化。 

預編譯的軟體包,通常是由軟體的釋出者進行編譯,您隻要将軟體拷貝到系統中就可以了。考慮到預編譯軟體包的适用性,預編譯軟體包通常不會針對某種硬體平台優化。它所包含的功能群組件也是通用的組合。 

Ubuntu 系統中,軟體通常以 deb 格式的封包件釋出,它是一種預編譯軟體包。deb 包中除了包含已編譯的軟體,通常還包括軟體的拷貝路徑、對其它軟體包的依賴關系紀錄、比較通用的配置檔案以及軟體的描述、版本、作者、類别、占用空間等資訊。 

deb 軟體包指令遵行如下約定: 

soft_ver-rev_arch.deb 

soft --軟體包名稱  

ver --軟體版本号  

rev --Ubuntu 修訂版本号  

arch --目标架構名稱  

例如: azureus_2.4.0.2-0ubuntu2_all.deb 

您需要使用 dpkg 指令來管理 deb 軟體包: 

dpkg -i | --install xxx.deb   安裝 deb 軟體包 

dpkg -r | --remove xxx.deb    删除軟體包 

dpkg -r -P | --purge xxx.deb  連同配置檔案一起删除 

dpkg -I | -info xxx.deb       檢視軟體包資訊 

dpkg -L xxx.deb               檢視包内檔案 

dpkg -l                       檢視系統中已安裝軟體包資訊 

dpkg-reconfigure xxx          重新配置軟體包 

有些時候,您使用 dpkg 安裝一個軟體包,系統會提示您該軟體包依賴其它軟體包。這時,

您先安裝其它軟體包,直到滿足依賴關系為止。或者同時安裝多個軟體包 

sudo dpkg -i aaa.deb bbb.deb ccc.deb

APT 

如果一個軟體依賴關系過于複雜,使用 dpkg 來安裝它,并不是一個明智的選擇,這個時

候您就需要用到 APT 軟體包管理系統。APT 可以自動的檢查依賴關系,通過您預設的方式來

獲得相關軟體包,并自動安裝配置它。事實上,在多數情況下,我們推薦您使用 APT 軟體

包管理系統。 

APT 系統需要一個軟體資訊資料庫和至少一個存放着大量 deb 包的軟體倉庫,我們稱之為 

源 。 源 可以是網絡伺服器,安裝 CD 或者本地軟體倉庫。您需要修改 

/etc/apt/sources.list 檔案,使 APT 系統能夠連接配接到 源。 

從以下頁面中獲得網絡安裝源的清單,并且根據您的網絡環境,選擇速度較快的源。 

http://wiki.ubuntu.org.cn/%E5%BF%AB%E9%80%9F%E8%AE%BE%E7%B

D%AE%E6%8C%87%E5%8D%97/DapperDrake 

APT 系統主要包括 apt-get 和 apt-cache 等指令。通常是複合指令,包含若幹個子指令。 

apt-get install xxx     安裝 xxx 

        -d 僅下載下傳 

        -f 強制安裝 

apt-get remove xxx      解除安裝 xxx 

apt-get update          更新軟體資訊資料庫 

apt-get upgrade         進行系統更新 

apt-cache search        搜尋軟體包 

Tip:建議您經常使用 sudo apt-get update 指令來更新您的軟體資訊資料庫 

APT 系統修複 

由于各種意外,APT 系統可能會出現問題,使用如下指令,嘗試進行修複: 

apt-get -f install

源碼包 

對于絕大多數軟體,我們建議您使用 APT 系統來安裝它。在少數情況下,例如某軟體沒有以 deb 包的格式釋出,或者需要定制适合自己的軟體,您可以通過編譯源代碼的方式安裝它。 

首先需要下載下傳軟體的源碼包,并且将它解包為一些源代碼檔案(一般裡面都有README等安裝說明檔案)。并了便于管理,建議将下

載的源碼包移動到 /usr/local/src/ 目錄下,并在這裡解包。 

sudo mv xxx.tar.gz /usr/local/src       移動源碼包 

cd /usr/local/src                       進入“/usr/local/src/”目錄 

sudo tar -xzvf xxx.tar.gz               解包源碼 

cd xxx_ver/                             進行解包後的源碼目錄 

源碼目錄中通常有一個 configure 腳本,用來配置即将開始的編譯過程。您可以執行它 

sudo ./configure [--prefix=/usr/loca/xxx ......] 

它會自動檢測軟體的編譯環境和依賴關系,并且生成 Makefile 檔案。  

使用帶參數的指令 ./configure --help ,或者閱讀 INSTALL 檔案,檢視該腳本允許的參數。例如使用 --prefix=/usr/local/xxx 參數,将軟體的安裝目錄設定為 /usr/local/xxx/ 。(如果一定要将軟體安裝在單獨目錄下,建議您安裝在這裡)  

現在執行 make 指令,系統會根據 Makefile 檔案中的設定,通過 make 工具調用編譯器和所需資源檔案,将源代碼編譯成目标檔案。 

sudo make 

執行 make install 指令, make 工具會自動連接配接目标檔案和庫檔案,将最終生成的檔案拷貝到 Makefile 檔案設定的路徑中,并且完成更改檔案的屬性,删除殘留檔案等活動。 

sudo make install 

現在,編譯安裝已經完成,為了更友善的使用它,需要給程式的可執行檔案作一個符号連結。 

sudo ln -sf /usr/local/xxx/可執行檔案 /usr/local/bin/可執行檔案 

解除安裝軟體用:  sudo make uninstall

Tip:為了順利的進行編譯,至少需要安裝 build-essential 軟體包。 

sudo apt-get install build-essential

附錄:對于build-essential的解釋:

linux作業系統上面開發程式, 光有了gcc/g++ 是不行的,它還需要一個 build-essential軟體包,該包是一個meta package,包含了許多與編譯有關的軟體包,作用是提供編譯程式必須軟體包的清單資訊。

也就是說 編譯程式有了這個軟體包,它才知道 頭檔案在哪 才知道庫函數在哪,還會下載下傳依賴的軟體包   最後才組成一個開發環境。

當然 build-essential包 安裝時 需要的依賴包 有些你用不上,用build-essential 隻不過友善管理罷了!

二進制安裝包安裝

bin或run或sh檔案或沒有擴充名的檔案安裝(需要安裝的二進制包installer)

此類型為Linux通用的2進制安裝包,可能隻對應x86,也可能包括x86-64支援(64位系統支援)

首先滑鼠操作,在“屬性”把檔案權限更改為“可以執行”。 指令行界面操作也可, 然後運作, 指令行則是到那個目錄下 ./檔案名 (.bin或.run) 或 sh ***.sh 例子: ./realplayer.bin ./install.run sh setup.sh

參考資料:

軟體安裝指南 

繼續閱讀