[轉載]Ubuntu/Debian包管理命令大全(apt & dpkg)
apt-cache search # ------(package 搜索包)
apt-cache show #------(package 獲取包的相關信息,如說明、大小、版本等)
apt-get install # ------(package 安裝包)
apt-get install # -----(package --reinstall 重新安裝包)
apt-get -f install # -----(強制安裝, "-f = --fix-missing"當是修復安裝吧...)
apt-get remove #-----(package 刪除包)
apt-get remove --purge # ------(package 刪除包,包括刪除配置文件等)
apt-get autoremove --purge # ----(package 刪除包及其依賴的軟件包+配置文件等(只對6.10有效,強烈推薦))
apt-get update #------更新源
apt-get upgrade #------更新已安裝的包
apt-get dist-upgrade # ---------升級系統
apt-get dselect-upgrade #------使用 dselect 升級
apt-cache depends #-------(package 了解使用依賴)
apt-cache rdepends # ------(package 了解某個具體的依賴,當是查看該包被哪些包依賴吧...)
apt-get build-dep # ------(package 安裝相關的編譯環境)
apt-get source #------(package 下載該包的源代碼)
apt-get clean && apt-get autoclean # --------清理下載文件的存檔 && 只清理過時的包
apt-get check #-------檢查是否有損壞的依賴
dpkg -S filename -----查找filename屬于哪個軟件包
apt-file search filename -----查找filename屬于哪個軟件包
apt-file list packagename -----列出軟件包的內容
apt-file update --更新apt-file的數據庫
dpkg --info "軟件包名" --列出軟件包解包后的包名稱.
dpkg -l --列出當前系統中所有的包.可以和參數less一起使用在分屏查看. (類似于rpm -qa)
dpkg -l |grep -i "軟件包名" --查看系統中與"軟件包名"相關聯的包.
dpkg -s 查詢已安裝的包的詳細信息.
dpkg -L 查詢系統中已安裝的軟件包所安裝的位置. (類似于rpm -ql)
dpkg -S 查詢系統中某個文件屬于哪個軟件包. (類似于rpm -qf)
dpkg -I 查詢deb包的詳細信息,在一個軟件包下載到本地之后看看用不用安裝(看一下唄).
dpkg -i 手動安裝軟件包(這個命令并不能解決軟件包之前的依賴性問題),如果在安裝某一個軟件包的時候遇到了軟件依賴的問題,可以用apt-get -f install在解決信賴性這個問題.
dpkg -r 卸載軟件包.不是完全的卸載,它的配置文件還存在.
dpkg -P 全部卸載(但是還是不能解決軟件包的依賴性的問題)
dpkg -reconfigure 重新配置
apt-get install
下載軟件包,以及所有依賴的包,同時進行包的安裝或升級。如果某個包被設置了 hold (停止標志,就會被擱在一邊(即不會被升級)。更多 hold 細節請看下面。
apt-get remove [--purge]
移除 以及任何依賴這個包的其它包。
--purge 指明這個包應該被完全清除 (purged) ,更多信息請看 dpkg -P。
apt-get update
升級來自 Debian 鏡像的包列表,如果你想安裝當天的任何軟件,至少每天運行一次,而且每次修改了
/etc/apt/sources.list 後,必須執行。
apt-get upgrade [-u]
升
級所有已經安裝的包為最新可用版本。不會安裝新的或移除老的包。如果一個包改變了依賴關系而需要安裝一個新的包,那么它將不會被升級,而是標志為
hold。apt-get update 不會升級被標志為 hold 的包 (這個也就是 hold 的意思)。請看下文如何手動設置包為
hold。我建議同時使用 '-u' 選項,因為這樣你就能看到哪些包將會被升級。
apt-get dist-upgrade [-u]
和 apt-get upgrade 類似,除了 dist-upgrade 會安裝和移除包來滿足依賴關系。因此具有一定的危險性。
apt-cache search
在軟件包名稱和描述中,搜索包含xxx的軟件包。
apt-cache show
顯示某個軟件包的完整的描述。
apt-cache showpkg
顯示軟件包更多細節,以及和其它包的關系。
dselect
console-apt
aptitude
gnome-apt
APT 的幾個圖形前端(其中一些在使用前得先安裝)。這里 dselect 無疑是最強大的,也是最古老,最難駕馭。
普通 Dpkg 用法
dpkg -i
安裝一個 Debian 包文件,如你手動下載的文件。
dpkg -c
列出 的內容。
dpkg -I
從 中提取包信息。
dpkg -r
移除一個已安裝的包。
dpkg -P
完全清除一個已安裝的包。和 remove 不同的是,remove 只是刪掉數據和可執行文件,purge 另外還刪除所有的配制文件。
dpkg -L
列出 安裝的所有文件清單。同時請看 dpkg -c 來檢查一個 .deb 文件的內容。
dpkg -s
顯示已安裝包的信息。同時請看 apt-cache 顯示 Debian 存檔中的包信息,以及 dpkg -I 來顯示從一個 .deb 文件中提取的包信息。
dpkg-reconfigure
重
新配制一個已經安裝的包,如果它使用的是 debconf (debconf 為包安裝提供了一個統一的配制界面)。你能夠重新配制 debconf
它本身,如你想改變它的前端或提問的優先權。例如,重新配制 debconf,使用一個 dialog 前端,簡單運行:
dpkg-reconfigure --frontend=dialog debconf (如果你安裝時選錯了,這里可以改回來喲:)
echo " hold" | dpkg --set-selections
設置 的狀態為 hlod (命令行方式)
dpkg --get-selections ""
取的 的當前狀態 (命令行方式)
支持通配符,如:
Debian:~# dpkg --get-selections *wine*
libwine hold
libwine-alsa hold
libwine-arts hold
libwine-dev hold
libwine-nas hold
libwine-print hold
libwine-twain hold
wine hold
wine+ hold
wine-doc hold
wine-utils hold
例如:
大家現在用的都是 gaim-0.58 + QQ-plugin,為了防止 gaim 被升級,我們可以采用如下方法:
方法一:
Debian:~# echo "gaim hold" | dpkg --set-selections
然後用下面命令檢查一下:
Debian:~# dpkg --get-selections "gaim"
gaim hold
現在的狀態標志是 hold,就不能被升級了。
如果想恢復怎么辦呢?
Debian:~# echo "gaim install" | dpkg --set-selections
Debian:~# dpkg --get-selections "gaim"
gaim install
這時狀態標志又被重置為 install,可以繼續升級了。
同志們會問,哪個這些狀態標志都寫在哪個文件中呢?
在 /var/lib/dpkg/status 里,你也可以通過修改這個文件實現 hold。
有時你會發現有的軟件狀態標志是 purge,不要奇怪。
如:事先已經安裝了 amsn,然後把它卸了。
apt-get remove --purge amsn
那么狀態標志就從 install 變成 purge。
方法二:
在/etc/apt 下手動建一個 preferences 文件
內容:
Package: gaim
Pin: version 0.58*
保存
dpkg -S
在包數據庫中查找 ,并告訴你哪個包包含了這個文件。(注:查找的是事先已經安裝的包)
--------------------------------------------
Debian的軟件包管理工具命令不完全列表
--------------------------------------------
Debian系統中所有的包信息都在/var/lib/dpkg下.其中/var/lib/dpkg/info目錄中保存了各個軟件包的信息及管理文件.每個文件的作用如下:
以 ".conffiles" 結尾的文件記錄軟件包的配置列表.
以 ".list" 結尾的文件記錄了軟件包的文件列表,用戶可在文件當中找到軟件包文件的具體安裝位置.
以 ".md5sums" 結尾的文件記錄了md5信息,用來進行包的驗證的.
以 ".config" 結尾的文件是軟件包的安裝配置角本.
以 ".postinst" 角本是完成Debian包解開之后的配置工作,通常用來執行所安裝軟件包相關的命令和服務的重新啟動.
以 ".preinst" 角本在Debain解包之前運行,主要作用是是停止作用于即將升級的軟件包服務直到軟件包安裝或和升級完成.
以 ".prerm" 腳本負責停止與軟件包關聯的daemon服務,在刪除軟件包關聯文件之前執行.
以 ".postrm" 腳本負責修改軟件包鏈接或文件關聯,或刪除由它創建的文件.
/var/lib/dpkg/available是軟件包的描述信息.
包括當前系統中所有使用的Debian安裝源中所有的軟件包,還包括當前系統中已經安裝和未安裝的軟件包.
1.dpkg包管理工具
dpkg --info "軟件包名" --列出軟件包解包后的包名稱.
dpkg -l --列出當前系統中所有的包.可以和參數less一起使用在分屏查看.
dpkg -l |grep -i "軟件包名" --查看系統中與"軟件包名"相關聯的包.
dpkg -s 查詢已安裝的包的詳細信息.
dpkg -L 查詢系統中已安裝的軟件包所安裝的位置.
dpkg -S 查詢系統中某個文件屬于哪個軟件包.
dpkg -I 查詢deb包的詳細信息,在一個軟件包下載到本地之后看看用不用安裝(看一下唄).
dpkg -i 手動安裝軟件包(這個命令并不能解決軟件包之前的依賴性問題),如果在安裝某一個軟件包的時候遇到了軟件依賴的問題,可以用apt-get -f install在解決信賴性這個問題.
dpkg -r 卸載軟件包.不是完全的卸載,它的配置文件還存在.
dpkg -P 全部卸載(但是還是不能解決軟件包的依賴性的問題)
dpkg -reconfigure 重新配置
2. apt高級包管理工具
(1)GTK圖形的"synaptic",這是APT的前端工具.
(2)"aptitude",這也是APT的前端工具.
用APT管理工具進行包的管理,可以有以下幾種方法做源:
(1)拿安裝盤做源,方法如下:
apt-cdrom ident 掃描光盤的信息
apt-cdrom add 添加光盤源
(2)這也是最常用的方法就是把源添加到/etc/apt/source.list中,之后更新列apt-get update
APT管理工具常用命令
apt-cache 加上不同的子命令和參數的使用可以實現查找,顯示軟件,包信息及包信賴關系等功能.
apt-cache stats 顯示當前系統所有使用的Debain數據源的統計信息.
apt-cache search +"包名",可以查找相關的軟件包.
apt-cache show +"包名",可以顯示指定軟件包的詳細信息.
apt-cache depends +"包名",可以查找軟件包的依賴關系.
apt-get upgrade 更新系統中所有的包到最新版
apt-get install 安裝軟件包
apt-get --reindtall install 重新安裝軟件包
apt-get remove 卸載軟件包
apt-get --purge remove 完全卸載軟件包
apt-get clean 清除無用的軟件包
在用命令apt-get install之前,是先將軟件包下載到/var/cache/apt/archives中,之后再進行安裝的.所以我們可以用apt-get clean清除/var/cache/apt/archives目錄中的軟件包.
源碼包安裝
apt-cache showsrc 查找看源碼包的文件信息(在下載之前)
apt-get source 下載源碼包.
apt-get build-dep +"包名" 構建源碼包的編譯環境.
posted on 2009-01-09 11:57
Blog of JoJo 閱讀(1126)
評論(0) 編輯 收藏 所屬分類:
Linux 技術相關