① 請問ubuntu下面,當前目錄中,查找包含相應內容的文件的命令,如在open目錄中查找帶有「hello」的文件
me@ubuntu:tmp$mkdiropen
me@ubuntu:tmp$cdopen/
me@ubuntu:open$ls
me@ubuntu:open$echo123567>file1
me@ubuntu:open$echo123567>file2
me@ubuntu:open$echo123567>file3
me@ubuntu:open$echohelloworld>file4
me@ubuntu:open$find./|xargsgrep-Hn'hello'
./file4:1:helloworld
② ubuntu 中如何查看安裝了什麼軟體
ubuntu安裝和查看已安裝
說明:由於圖形化界面方法(如Add/Remove... 和Synaptic Package Manageer)比較簡單,所以這里主要總結在終端通過命令行方式進行的軟體包安裝、卸載和刪除的方法。
一、Ubuntu中軟體安裝方法
1、APT方式
(1)普通安裝:apt-get install softname1 softname2 …;
(2)修復安裝:apt-get -f install softname1 softname2... ;(-f Atemp to correct broken dependencies)
(3)重新安裝:apt-get --reinstall install softname1 softname2...;
2、Dpkg方式
(1)普通安裝:dpkg -i package_name.deb
3、源碼安裝(.tar、tar.gz、tar.bz2、tar.Z)
首先解壓縮源碼壓縮包然後通過tar命令來完成
a.解xx.tar.gz:tar zxf xx.tar.gz
b.解xx.tar.Z:tar zxf xx.tar.Z
c.解xx.tgz:tar zxf xx.tgz
d.解xx.bz2:bunzip2 xx.bz2
e.解xx.tar:tar xf xx.tar
然後進入到解壓出的目錄中,建議先讀一下README之類的說明文件,因為此時不同源代碼包或者預編譯包可能存在差異,然後建議使用ls -F --color或者ls -F命令(實際上我的只需要 l 命令即可)查看一下可執行文件,可執行文件會以*號的尾部標志。
一般依次執行./configure
make
sudo make install
即可完成安裝。
二、Ubuntu中軟體包的卸載方法
1、APT方式
(1)移除式卸載:apt-get remove softname1 softname2 …;(移除軟體包,當包尾部有+時,意為安裝)
(2)清除式卸載 :apt-get --purge remove softname1 softname2...;(同時清除配置)
清除式卸載:apt-get purge sofname1 softname2...;(同上,也清除配置文件)
2、Dpkg方式
(1)移除式卸載:dpkg -r pkg1 pkg2 ...;
(2)清除式卸載:dpkg -P pkg1 pkg2...;
三、Ubuntu中軟體包的查詢方法
Dpkg 使用文本文件來作為資料庫.通稱在 /var/lib/dpkg 目錄下. 通稱在 status 文件中存儲軟體狀態,和控制信息. 在 info/ 目錄下備份控制文件, 並在其下的 .list 文件中記錄安裝文件清單, 其下的 .mdasums 保存文件的 MD5 編碼.
體驗使用資料庫的時刻到了:
$ dpkg -l Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed |/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad) ||/ Name Version Description +++-===========-================-======================================== ii aalib1 1.4p5-28 ascii art library - transitional package ii adser 3.85 Add and remove users and groups ii alien .63 install non-native packages with dpkg ... ...
每條記錄對應一個軟體包, 注意每條記錄的第一, 二, 三個字元. 這就是軟體包的狀態標識, 後邊依此是軟體包名稱, 版本號, 和簡單描述.
第一字元為期望值,它包括:
u 狀態未知,這意味著軟體包未安裝,並且用戶也未發出安裝請求.
i 用戶請求安裝軟體包.
r 用戶請求卸載軟體包.
p 用戶請求清除軟體包.
h 用戶請求保持軟體包版本鎖定.
第二列,是軟體包的當前狀態.此列包括軟體包的六種狀態.
n 軟體包未安裝.
i 軟體包安裝並完成配置.
c 軟體包以前安裝過,現在刪除了,但是它的配置文件還留在系統中.
u 軟體包被解包,但還未配置.
f 試圖配置軟體包,但是失敗了.
h 軟體包安裝,但是但是沒有成功.
第三列標識錯誤狀態,可以總結為四種狀態. 第一種狀態標識沒有問題,為空. 其它三種符號則標識相應問題.
h 軟體包被強制保持,因為有其它軟體包依賴需求,無法升級.
r 軟體包被破壞,可能需要重新安裝才能正常使用(包括刪除).
x 軟包件被破壞,並且被強制保持.
也可以以統配符模式進行模糊查詢, 比如我要查找以nano字元開始的所有軟體包:
$ dpkg -l nano* Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed |/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad) ||/ Name Version Description +++-==============-==============-============================================ ii nano 1.3.10-2 free Pico clone with some new features pn nano-tiny <none> (no description available) un nanoblogger <none> (no description available)
以上狀態說明: 系統中安裝了 nano 版本為 1.3.10-2 ;安裝過 nano-tiny , 後來又清除了; 從未安裝過nanoblogger .
如果覺得 dpkg 的參數過多, 不利於記憶的話, 完全可以使用 dpkg-query 進行 dpkg 資料庫查詢.
應用範例:
查詢系統中屬於nano的文件:
$ dpkg --listfiles nano
or
$ dpkg-query -L nano
查看軟體nano的詳細信息:
$ dpkg -s nano
or
$ dpkg-query -s nano
查看系統中軟體包狀態, 支持模糊查詢:
$ dpkg -l
or
$dpkg-query -l
查看某個文件的歸屬包:
$ dpkg-query -S nano
or
$ dpkg -S nano
三、其他應用總結
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" 角本在Den解包之前運行,主要作用是是停止作用於即將升級的軟體包服務直到軟體包安裝或和升級完成.
以 ".prerm" 腳本負責停止與軟體包關聯的daemon服務,在刪除軟體包關聯文件之前執行.
以 ".postrm" 腳本負責修改軟體包鏈接或文件關聯,或刪除由它創建的文件.
/var/lib/dpkg/available是軟體包的描述信息.
包括當前系統中所有使用的Debian安裝源中所有的軟體包,還包括當前系統中已經安裝和未安裝的軟體包.
1.dpkg包管理工具
dpkg -r 卸載軟體包.不是完全的卸載,它的配置文件還存在.
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 -reconfigure 重新配置
dpkg -P 全部卸載(但是還是不能解決軟體包的依賴性的問題)
③ ubuntu 怎麼知道安裝的軟體在哪個目錄
用ubuntu 的方式比較多,可以圖形界面用系統的軟體中心安裝,可以像window一樣自己去網上下載來安裝,也可以用 apt-get install 安裝(其實是 dpkg 軟體包管理器),但是,安裝後的軟體到底在哪裡看不像window一個軟體一般都在一個文件夾里,ubuntu 的一個軟體一般分開在多個目錄,可供終端調用的執行文件一般在 /bin 目錄,而且往往是在/usr/bin/目錄下,一種快速查看軟體目錄的方法是:
1. 執行該程序;
2. 用命令ps -e, 找到對應的程序名字;
3. 用find命令尋找對應文件的位置就好了;
如multiget的對應位置就在:
HTML code
hunter@hunter:/$ sudo find / -name multiget
/usr/bin/multiget
/usr/share/doc/multiget
^C
如果知道是用 apt-get install 方法安裝的,可以直接用 dpkg -S 軟體名(注意是大寫S)命令顯示所有包含該軟體包的目錄
④ ubuntu通過find的命令查找包的位置
find命令用來在指定目錄下查找文件。任何位於參數之前的字元串都將被視為欲查找的目錄名。如果使用該命令時,不設置任何參數,則find命令將在當前目錄下查找子目錄與文件。並且將查找到的子目錄和文件全部進行顯示。
通過這個命令,我們可以解決實際工作中遇到的問題,比如用ruby安裝sass,在webstorm的file watcher里配置scss的話,會找不到sass的路徑,這時我們可以用 find / -name sass 來查找。
⑤ ubuntu 如何查看文件來自什麼軟體
以前編譯程序時,經常遇到缺少依賴的某個文件,需要查找這個內文件來自哪個軟容件包
如果類似這種情況,我推薦安裝並使用 apt-file
安裝:
sudo apt-get install apt-file
更新apt-file資料庫
sudo apt-file update
查找:
$ apt-file search filename
$ apt-file search path/to/filename
To list the contents of an uninstalled package:
$ apt-file list packagename
⑥ 如何查找Ubuntu系統中佔用磁碟最大的那些文件夾
原因是:windows只支持最多4個分區:即 你的 windows主系統盤C,擴展分區(DEFG。。。),然後是內ubuntu的幾個分容區。 所以下次安裝時要這樣分區: 主系統盤C,一個大擴展分區(一個!,從一個裡面再分幾個小的),剩下的來裝ubuntu。 現在你處理的方法是: 用U盤做一個WinPE,用WinPE啟動系統,然後用磁碟分區軟體,刪掉ubuntu的幾個分區(就是改成window是可以用的ext4->NFS)。就算需要數據恢復,WInPe裡面也可以自己加數據恢復工具的,我這樣做過沒有問題的。 待恢復分區以後,可以按照我建議的分區重新分區你的電腦(用winPe),即1一個系統盤C 2一個擴展盤(DEF)3 SWAP 4\ 然後重新安裝ubuntu。 以上是我積累的寶貴的經驗,用過很多次的,一般沒有問題,不過我推薦你用虛擬機安裝,這樣最方便。 WInpe沒有 老毛桃之類的也是很好的。
⑦ 如何查看ubuntu安裝的軟體
ubuntu安裝和查看已安裝
說明:由於圖形化界面方法(如Add/Remove... 和Synaptic Package Manageer)比較簡單,所以這里主要總結在終端通過命令行方式進行的軟體包安裝、卸載和刪除的方法。
一、Ubuntu中軟體安裝方法
1、APT方式
(1)普通安裝:apt-get install softname1 softname2 …;
(2)修復安裝:apt-get -f install softname1 softname2... ;(-f Atemp to correct broken dependencies)
(3)重新安裝:apt-get --reinstall install softname1 softname2...;
2、Dpkg方式
(1)普通安裝:dpkg -i package_name.deb
3、源碼安裝(.tar、tar.gz、tar.bz2、tar.Z)
首先解壓縮源碼壓縮包然後通過tar命令來完成
a.解xx.tar.gz:tar zxf xx.tar.gz
b.解xx.tar.Z:tar zxf xx.tar.Z
c.解xx.tgz:tar zxf xx.tgz
d.解xx.bz2:bunzip2 xx.bz2
e.解xx.tar:tar xf xx.tar
然後進入到解壓出的目錄中,建議先讀一下README之類的說明文件,因為此時不同源代碼包或者預編譯包可能存在差異,然後建議使用ls -F --color或者ls -F命令(實際上我的只需要 l 命令即可)查看一下可執行文件,可執行文件會以*號的尾部標志。
一般依次執行./configure
make
sudo make install
即可完成安裝。
二、Ubuntu中軟體包的卸載方法
1、APT方式
(1)移除式卸載:apt-get remove softname1 softname2 …;(移除軟體包,當包尾部有+時,意為安裝)
(2)清除式卸載 :apt-get --purge remove softname1 softname2...;(同時清除配置)
清除式卸載:apt-get purge sofname1 softname2...;(同上,也清除配置文件)
2、Dpkg方式
(1)移除式卸載:dpkg -r pkg1 pkg2 ...;
(2)清除式卸載:dpkg -P pkg1 pkg2...;
三、Ubuntu中軟體包的查詢方法
Dpkg 使用文本文件來作為資料庫.通稱在 /var/lib/dpkg 目錄下. 通稱在 status 文件中存儲軟體狀態,和控制信息. 在 info/ 目錄下備份控制文件, 並在其下的 .list 文件中記錄安裝文件清單, 其下的 .mdasums 保存文件的 MD5 編碼.
體驗使用資料庫的時刻到了:
$ dpkg -l Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed |/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad) ||/ Name Version Description +++-===========-================-======================================== ii aalib1 1.4p5-28 ascii art library - transitional package ii adser 3.85 Add and remove users and groups ii alien .63 install non-native packages with dpkg ... ...
每條記錄對應一個軟體包, 注意每條記錄的第一, 二, 三個字元. 這就是軟體包的狀態標識, 後邊依此是軟體包名稱, 版本號, 和簡單描述.
第一字元為期望值,它包括:
u 狀態未知,這意味著軟體包未安裝,並且用戶也未發出安裝請求.
i 用戶請求安裝軟體包.
r 用戶請求卸載軟體包.
p 用戶請求清除軟體包.
h 用戶請求保持軟體包版本鎖定.
第二列,是軟體包的當前狀態.此列包括軟體包的六種狀態.
n 軟體包未安裝.
i 軟體包安裝並完成配置.
c 軟體包以前安裝過,現在刪除了,但是它的配置文件還留在系統中.
u 軟體包被解包,但還未配置.
f 試圖配置軟體包,但是失敗了.
h 軟體包安裝,但是但是沒有成功.
第三列標識錯誤狀態,可以總結為四種狀態. 第一種狀態標識沒有問題,為空. 其它三種符號則標識相應問題.
h 軟體包被強制保持,因為有其它軟體包依賴需求,無法升級.
r 軟體包被破壞,可能需要重新安裝才能正常使用(包括刪除).
x 軟包件被破壞,並且被強制保持.
也可以以統配符模式進行模糊查詢, 比如我要查找以nano字元開始的所有軟體包:
$ dpkg -l nano* Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed |/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad) ||/ Name Version Description +++-==============-==============-============================================ ii nano 1.3.10-2 free Pico clone with some new features pn nano-tiny <none> (no description available) un nanoblogger <none> (no description available)
以上狀態說明: 系統中安裝了 nano 版本為 1.3.10-2 ;安裝過 nano-tiny , 後來又清除了; 從未安裝過nanoblogger .
如果覺得 dpkg 的參數過多, 不利於記憶的話, 完全可以使用 dpkg-query 進行 dpkg 資料庫查詢.
應用範例:
查詢系統中屬於nano的文件:
$ dpkg --listfiles nano
or
$ dpkg-query -L nano
查看軟體nano的詳細信息:
$ dpkg -s nano
or
$ dpkg-query -s nano
查看系統中軟體包狀態, 支持模糊查詢:
$ dpkg -l
or
$dpkg-query -l
查看某個文件的歸屬包:
$ dpkg-query -S nano
or
$ dpkg -S nano
三、其他應用總結
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" 角本在Den解包之前運行,主要作用是是停止作用於即將升級的軟體包服務直到軟體包安裝或和升級完成.
以 ".prerm" 腳本負責停止與軟體包關聯的daemon服務,在刪除軟體包關聯文件之前執行.
以 ".postrm" 腳本負責修改軟體包鏈接或文件關聯,或刪除由它創建的文件.
/var/lib/dpkg/available是軟體包的描述信息.
包括當前系統中所有使用的Debian安裝源中所有的軟體包,還包括當前系統中已經安裝和未安裝的軟體包.
1.dpkg包管理工具
dpkg -r 卸載軟體包.不是完全的卸載,它的配置文件還存在.
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 -reconfigure 重新配置
dpkg -P 全部卸載(但是還是不能解決軟體包的依賴性的問題)