dpkg總結(jié) Debian系統(tǒng)中所有的包信息都在/var/lib/dpkg下.其中/var/lib/dpkg/info目錄中保存了各個(gè)軟件包的信息及管理文件. 每個(gè)文件的作用如下:
".conffiles" 文件記錄軟件包的配置列表.
".list" 文件記錄了軟件包的文件列表,用戶可在文件當(dāng)中找到軟件包文件的具體安裝位置.
".md5sums" 文件記錄了md5信息,用來進(jìn)行包的驗(yàn)證的.
".config" 文件是軟件包的安裝配置腳本.
".postinst" 腳本是完成Debian包解開之后的配置工作,通常用來執(zhí)行所安裝軟件包相關(guān)的命令和服務(wù)的重新啟動(dòng).
".preinst" 腳本在Debain解包之前運(yùn)行,主要作用是是停止作用于即將升級(jí)的軟件包服務(wù)直到軟件包安裝或和升級(jí)完成.
".prerm" 腳本負(fù)責(zé)停止與軟件包關(guān)聯(lián)的daemon服務(wù),在刪除軟件包關(guān)聯(lián)文件之前執(zhí)行.
".postrm" 腳本負(fù)責(zé)修改軟件包鏈接或文件關(guān)聯(lián),或刪除由它創(chuàng)建的文件.
/var/lib/dpkg/available是軟件包的描述信息.
包括當(dāng)前系統(tǒng)中所有使用的Debian安裝源中所有的軟件包,還包括當(dāng)前系統(tǒng)中已經(jīng)安裝和未安裝的軟件包.
dpkg包管理工具命令:
dpkg -c --列出包的內(nèi)容.
dpkg --info "packagename" --列出軟件包解包后的包名稱.
dpkg -l --列出當(dāng)前系統(tǒng)中所有的包.可以和參數(shù)less一起使用在分屏查看.
dpkg -l |grep -i "packagename" --查看系統(tǒng)中與"軟件包名"相關(guān)聯(lián)的包.
dpkg -s --查詢已安裝的包的詳細(xì)信息.
dpkg -L --查詢系統(tǒng)中已安裝的軟件包所安裝的位置.
dpkg -S --查詢系統(tǒng)中某個(gè)文件屬于哪個(gè)軟件包.
dpkg -I --查詢deb包的詳細(xì)信息,在一個(gè)軟件包下載到本地之后看看用不用安裝(看一下唄).
dpkg -i --手動(dòng)安裝軟件包(這個(gè)命令并不能解決軟件包之前的依賴性問題),如果在安裝某一個(gè)軟件包的時(shí)候遇到了軟件依賴的問題,可以用apt-get -f install在解決信賴性這個(gè)問題.
dpkg -r --卸載軟件包.不是完全的卸載,它的配置文件還存在.
dpkg -P --全部卸載(但是還是不能解決軟件包的依賴性的問題).
dpkg -reconfigure --重新配置.
dpkg-reconfigure --frontend=dialog debconf --如果安裝時(shí)選錯(cuò)了,這里可以改回來.
dpkg --force-all --purge --有些軟件很難卸載,而且還阻止了別的軟件的應(yīng)用,就可以用這個(gè),不過有點(diǎn)冒險(xiǎn).
echo "<package> hold" | dpkg --set-selections
設(shè)置 <package> 的狀態(tài)為 hold (命令行方式)
dpkg --get-selections "<package>"
取得 <package> 的當(dāng)前狀態(tài) (命令行方式)
sudo gedit /etc/apt/sources.list
比如想自己裝gedit:
# dpkg -i gedit-2.12.1.deb卸載:
# dpkg -r gedit這里只寫名字即可。還可以加上--purge(-P)標(biāo)志:
# dpkg -P gedit這會(huì)連同gedit的配置文件一起刪除,只用-r的話是不刪除配置文件的。
如果不想安裝一個(gè)deb包,但想看一下它里面有什么文件:# dpkg -c gedit-2.12.1.deb如果想多看點(diǎn)信息:
# dpkg -I gedit-2.12.1.deb
也可以用通配符來列出機(jī)器上的軟件:
# dpkg -l gcc*這會(huì)列出所有g(shù)cc開頭的軟件包:
Desired=Unknown/Install/Remove/Purge/HoldStatus=Not/Installed/Config-files/Unpacked/Failed-config/./ Err?=(none)/Hold/Reinst-required/X=both-problems/ Name Version Description+++-===============-==============-========================ii gcc 4.0.1-3 The GNU C compilerii gcc-3.3-base 3.3.6-8ubuntu1 The GNU Compiler Colletioun gcc-3.5 none (no description available)
其中,第1個(gè) i 表示希望安裝,第2個(gè) i 表示已經(jīng)安裝,第3個(gè)字段是問題(如果有)(這3個(gè)字的含義可以看上面那3行,desired, status, err),后面是名字,版本和描述。un就表示,Unknown,not-installed。
如果想看某包是否已經(jīng)安裝:
# dpkg -s gedit
如果想看某軟件都有哪些文件,都裝到了什么地方:
# dpkg -L gedit
如果只想看其中的某些文件,就加上Grep:
# dpkg -L gedit grep png
當(dāng)然還有aptitude和Aptitude,前者是終端上運(yùn)行的帶菜單的工具,后者是X窗口上運(yùn)行的圖形化的程序。
還有,列出某包的詳情:
apt-cache show gedit
一些強(qiáng)制的命令:dpkg --force-help
apt總結(jié) apt-get install packagename //安裝包
apt-get -f install packagename //強(qiáng)制安裝, "-f = --fix-missing" 當(dāng)是修復(fù)安裝吧
apt-get remove packagename //卸載一個(gè)已安裝的軟件包(保留配置文件)
apt-get remove --purge packagename //卸載一個(gè)已安裝的軟件包(刪除配置文件)
apt-get clean //這個(gè)命令會(huì)把安裝的軟件的備份也刪除,不過這樣不會(huì)影響軟件的使用的
apt-get upgrade //更新所有已安裝的軟件包
apt-get dist-upgrade //將系統(tǒng)升級(jí)到新版本
apt-get dselect-upgrade //使用 dselect 升級(jí)
apt-cache search string //在軟件包列表中搜索字符串
aptitude ——詳細(xì)查看已安裝或可用的軟件包。與apt-get類似,aptitude可以通過命令行方式調(diào)用,但僅限于某些命令——最常見的有安裝和卸載命令。由于aptitude比apt-get了解更多信息,可以說它更適合用來進(jìn)行安裝和卸載
apt-cache search packagename //可以用這個(gè)指令來搜尋升級(jí)包
apt-cache depends packagename //了解使用依賴
apt-cache rdepends packagename //了解某個(gè)具體的依賴,當(dāng)是查看該包被哪些包依賴
apt-cache showpkg packagename //顯示軟件包信息
apt-cache show packagename //獲取包的相關(guān)信息,如說明、大小、版本等,類似于dpkg --print-avail
apt-cache dumpavail //打印可用軟件包列表
apt-get build-dep packagename //包安裝相關(guān)的編譯環(huán)境
apt-get source packagename //下載該包的源代碼
apt-get clean && apt-get autoclean //清理下載文件的存檔 && 只清理過時(shí)的包
apt-get check //檢查是否有損壞的依賴
apt-file search filename //查找包含特定文件的軟件包(不一定是已安裝的),這些文件的文件名中含有指定的字符串。apt-file是一個(gè)獨(dú)立的軟件包。您必須先使用apt- get install來安裝它,然后運(yùn)行apt-file update。如果apt-file search filename輸出的內(nèi)容太多,您可以嘗試使用apt-file search filename | grep -w filename(只顯示指定字符串作為完整的單詞出現(xiàn)在其中的那些文件名)或者類似方法,例如:apt-file search filename | grep /bin/(只顯示位于諸如/bin或/usr/bin這些文件夾中的文件,如果您要查找的是某個(gè)特定的執(zhí)行文件的話,這樣做是有幫助的)
apt-file list packagename //列出軟件包的內(nèi)容
apt-file update //更新apt-file的數(shù)據(jù)庫
apt-file search command // 搜索包含此命令的包
apt-get autoclean //定期運(yùn)行這個(gè)命令來清除那些已經(jīng)卸載的軟件包的.deb文件。通過這種方式,您可以釋放大量的磁盤空間。如果您的需求十分迫切,可以使用apt- get clean以釋放更多空間。這個(gè)命令會(huì)將已安裝軟件包裹的.deb文件一并刪除。
echo "<package> hold" | dpkg --set-selections
設(shè)置 <package> 的狀態(tài)為 hlod (命令行方式)
dpkg --get-selections "<package>"
取得 <package> 的當(dāng)前狀態(tài) (命令行方式)
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)
點(diǎn)擊舉報(bào)。