deb的安裝方法大體有5種:
Cydia或同類(lèi)APT管理軟件在線安裝,這個(gè)是最佳的安裝方式,因?yàn)橥ǔo(wú)需考慮依賴關(guān)系,但缺點(diǎn)是對(duì)網(wǎng)絡(luò)的要求比較高;命令行中以dpkg-iXXX.deb的形式安裝,好處是可以以通配符一次性安裝多個(gè)deb,而且也可以直接看到腳本的運(yùn)行狀況和安裝成功/失敗的提示信息,缺點(diǎn)是需要命令行軟件的支持,如Putty/WinSCP的控制臺(tái)/iSSH/MobileTerminal,很多人也不熟悉命令行下的操作。另外,安裝完后會(huì)不顯示圖標(biāo);
放置于AutoInstall目錄重啟安裝。該方法實(shí)際是Cydia提供的一個(gè)啟動(dòng)腳本,在每次系統(tǒng)啟動(dòng)時(shí)以dpkg命令安裝AutoInstall目錄下的deb,好處是不需要命令行操作,缺點(diǎn)是必須要重啟,有些甚至要重啟兩次,也會(huì)出現(xiàn)不顯示圖標(biāo)的情況;利用iFile安裝,好處是圖形化操作,桌面會(huì)顯示圖標(biāo),缺點(diǎn)是不能一次安裝多個(gè)deb;用CyderII等軟件來(lái)安裝,其原理是模擬一個(gè)APT軟件管理器來(lái)下載相應(yīng)的deb文件并傳到設(shè)備,然后以前面幾種方式來(lái)安裝。
總體來(lái)說(shuō),deb的安裝都是依賴于dpkg-i命令來(lái)安裝,只不過(guò)有些是在命令行下輸入命令,有些是提供了圖形界面。但除了Cydia安裝一種方式之外,其余幾種安裝方式都存在一些共有的問(wèn)題:
不會(huì)自行搜索依賴關(guān)系,必須手動(dòng)提供所依賴的deb;Cydia會(huì)讀取安裝腳本里的一些特殊語(yǔ)句,比如僅在全新安裝時(shí)執(zhí)行而不在升級(jí)時(shí)執(zhí)行,安裝完成后重啟SpringBoard或設(shè)備等等。當(dāng)然了,deb軟件的卸載也比較簡(jiǎn)單,有三種方式:
Cydia里卸載,優(yōu)點(diǎn)是卸載過(guò)程和提示信息很詳細(xì),全圖形界面操作,同時(shí)也提供了重新安裝的選項(xiàng);
以dpkg-rPackage_ID命令或dpkg-PPackage_ID命令來(lái)卸載(詳情后面會(huì)說(shuō));Cydelete來(lái)卸載,優(yōu)點(diǎn)是可以直接在桌面上卸載有圖標(biāo)的軟件,但對(duì)那些沒(méi)有圖標(biāo)的無(wú)能為力。其實(shí),不管是安裝還是刪除,都可以才要全手動(dòng)的方法。即,解包deb之后,自己將文件放到相應(yīng)位置,然后設(shè)置權(quán)限等并執(zhí)行腳本。但這樣有必要么?
deb的安裝過(guò)程如下:
讀取數(shù)據(jù)庫(kù)并鎖定,避免同時(shí)有兩個(gè)安裝程序在運(yùn)行讀取control中的Package(軟件包標(biāo)識(shí))和版本信息,并搜索數(shù)據(jù)庫(kù),若已存在,則卸載之后再安裝;檢查Depends,Pre-Depends,Conflicts和Replaces,如果檢測(cè)到已存在Conflicts中存在的軟件,則報(bào)錯(cuò)并終止安裝。如未找到Pre-Depends指定的軟件,則報(bào)錯(cuò)并終止安裝。如找到Replaces中指定的軟件,則卸載之;
將數(shù)據(jù)寫(xiě)入/var/lib/dpkg/status文件中;
執(zhí)行preinst腳本(如果有);
解包data.tar.gz,將文件放置于相應(yīng)位置,并將文件列表寫(xiě)入/var/lib/dpkg/info/XXX.list;
運(yùn)行postinst和extrainst_腳本(如果有);
如果之前的安裝都沒(méi)有出錯(cuò),即安裝成功,那么會(huì)在status文件中寫(xiě)入Status:installokinstalled信息,否則會(huì)寫(xiě)入其它狀態(tài)數(shù)據(jù),比如Unpacked(未解包數(shù)據(jù))、Failed-config(腳本未能成功執(zhí)行)、Half-installed(安裝失敗等);重新加載數(shù)據(jù)庫(kù)并解除鎖定。
新聞熱點(diǎn)
疑難解答
圖片精選