[r]Ubuntu Linux系統下apt-get命令詳解

Ubuntu Linux系統下apt-get命令詳解(via|via)前端

經常使用的APT命令參數:
 
  apt-cache search package 搜索包
 
  apt-cache show package 獲取包的相關信息,如說明、大小、版本等
 
  sudo apt-get install package 安裝包
 
  sudo apt-get install package - - reinstall 從新安裝包
 
  sudo apt-get -f install 修復安裝"-f = ——fix-missing"
 
  sudo apt-get remove package 刪除包
 
  sudo apt-get remove package - - purge 刪除包,包括刪除配置文件等
 
  sudo apt-get update 更新源
 
  sudo apt-get upgrade 更新已安裝的包
 
  sudo apt-get dist-upgrade 升級系統
 
  sudo apt-get dselect-upgrade 使用 dselect 升級
 
  apt-cache depends package 瞭解使用依賴
 
  apt-cache rdepends package 是查看該包被哪些包依賴
 
  sudo apt-get build-dep package 安裝相關的編譯環境
 
  apt-get source package 下載該包的源代碼
 
  sudo apt-get clean && sudo apt-get autoclean 清理無用的包 網管bitscn_com  
  sudo apt-get check 檢查是否有損壞的依賴

linux

出自Ubuntu中文

apt-cache search # ------(package 搜索包)
apt-cache show #------(package 獲取包的相關信息,如說明、大小、版本等)
sudo apt-get install # ------(package 安裝包)
sudo apt-get install # -----(package - - reinstall 從新安裝包)
sudo apt-get -f install # -----(強制安裝?#"-f = --fix-missing"當是修復安裝吧...)
sudo apt-get remove #-----(package 刪除包)
sudo apt-get remove - - purge # ------(package 刪除包,包括刪除配置文件等)
sudo apt-get autoremove --purge # ----(package 刪除包及其依賴的軟件包+配置文件等(只對6.10有效,強烈推薦))
sudo apt-get update #------更新源
sudo apt-get upgrade #------更新已安裝的包
sudo apt-get dist-upgrade # ---------升級系統
sudo apt-get dselect-upgrade #------使用 dselect 升級
apt-cache depends #-------(package 瞭解使用依賴)
apt-cache rdepends # ------(package 瞭解某個具體的依賴?#當是查看該包被哪些包依賴吧...)
sudo apt-get build-dep # ------(package 安裝相關的編譯環境)
apt-get source #------(package 下載該包的源代碼)
sudo apt-get clean && sudo apt-get autoclean # --------清理下載文件的存檔 && 只清理過期的包
sudo apt-get check #-------檢查是否有損壞的依賴


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
搜索知足 的包裹和描述。

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
在包裹數據庫中查找 ,並告訴你哪一個包裹包含了這個文件。(注:查找的是事先已經安裝的包裹)

 

apt-get 在Debian項目中的地位是無可替代的,若是說有一個程序能夠表明Debian
,那毫無疑問,是 apt-get,apt-get和deb包提供了 RPM 所沒法提供的強大功能。

除了apt的便捷之外,apt-get的一大好處是極大地減少了所謂依賴關係惡夢的發生
概率(dependency hell),即便是陷入了dependency hell,apt-get也提供了很好的
援助手段,幫你逃出魔窟。 

一般 apt-get 都和網上的壓縮包一塊兒出沒,從互聯網上下載或是安裝。全世界有超
過200個 debian 官方鏡像,還有繁多的非官方軟件包提供網站。你所使用的基於D 
ebian的發佈版不一樣,你所使用的軟件倉庫可能須要手工選擇或是能夠自動設置。你
能從Debian官方網站獲得完整的鏡像列表。而不少非官方網站提供各類特殊用途的 
非官方軟件包,固然,使用非官方軟件包會有更多風險了。 

軟件包都是爲某一個基本的Debian發佈版所準備的(從unstable到stable),而且劃
分到不一樣類別中(如 main contrib nonfree),這個是依據 debian 自由軟件綱領而
劃分的(也就是常說的dfsg),由於美國限制加密軟件出口,還有一個non-us類別。 

apt-get 獲取軟件包所依賴的配置文件 /etc/apt/sources.list 中的設置編寫格式
是 
                                                                      

deb [server-type] [address] [directories] [areas]


文中例子:數據庫



deb [url]http://mirror.peer1.net/debian[/url] main contrib non-free


我在學校的時候的例子 緩存



deb [url]http://debian.ustc.edu.cn/debian/[/url] testing main contrib non-free

 

若是用deb-src 而不是 deb 的話,那麼就是指的源代碼包。一般都會使用http和f
tp方式獲取文件,不過也可使用本地文件,更罕見的還有rsh和SSH,但都是能夠
的。使用 netselect-apt 能夠用來判斷哪一個鏡像更快。修改了鏡像信息後,應該使
用apt-get update 命令,更新軟件包的信息 

你能夠從Debian 網站上看軟件包的相關信息,而另外一方面可使用 dpkg -l 看哪
些軟件包已經被安裝了。很大的程序,好比gnome,一般有個空的軟件包,只是經過
依賴關係來安裝其餘全部的相應的軟件,而這些軟件也能夠被逐一安裝。 

使用
apt-get install [package-name]
就能夠安裝軟件包了,這裏不須要版本號,apt-get 會自動選擇最新的。若是最新
的已經被安裝了,那麼就不會安裝了。若是但願安裝一個較老的版本,能夠選擇版
本,好比 


apt-get install gimp=2.2


你也能夠選擇特定的發佈版frontend



apt-get install -t unstable gimp



對於安裝源代碼,使用source代替install就能夠了,若是須要編譯,使用 -b 選項
,軟件包會被下載到當前目錄的。(aptitude 注:只有 root 能夠 install,可是 
誰均可以source 的。) 

網站

執行以前,apt-get 會列出有多少軟件包要被安裝、升級,若是要被安裝的軟件不
只是你所指出的軟件包,那麼它會問你是否繼續。可使用 -s 來看看運行的結果
(注: 不知道這個是怎麼仿真的,沒試過) 

apt-get 安裝過程當中,會顯示安裝的情況,有時 apt-get 會根據軟件包的需求調用
debconf 來讓用戶輸入一些配置選項。這個配置通常都是一些選擇,一般選擇缺省
狀況均可以,也可使用 --yes 來聲明,所有使用缺省選項,無需提問。(注:若是使用cron來天天自動更新系統,這個選項仍是挺有用的,雖然總以爲有點懼怕吧。) 

apt-get 的 upgrade 不會安裝新的軟件包,只會升級原有的軟件包的版本,要升級
整個系統,可能要安裝新的軟件包,這能夠經過 dist-upgrade 完成,好比升級 s 
table到testing,建議要升級 stable 到 unstable,先升級到 testing,以減少風
險。 

使用 apt-get clean 能夠釋放被 apt-get 所佔用的緩存空間也可使用 autocl
ean 命令,這樣僅僅刪去已經不可能被再次下載的文件。 

也可使用 remove 命令刪除軟件包。(注:若是要連配置文件也一塊兒刪
除,須要使用 --purge 參數) 

有時也會出問題,能夠用下面一些辦法解決:

 

    • -f 修復依賴關係

 

    • -m 忽略有問題的包 (這個不像是解決問題的態度哦)

 

    • -ignore-hold 忽略有問題的 hold

 

  • -s 報告軟件包狀態
固然,若是你的技巧和耐心不夠的話,仍是當心使用系統吧,正常的使用一般不會
形成不少須要解決的問題 :) 

多年以來,apt-get 有了不少前端,除了商業版本外,其餘的均可以經過 apt-get
來安裝。文本界面下,aptitude 還不錯,瀏覽軟件包比較方便。對於圖形界面 synaptic 是個不錯的選擇,比較原汁原味的 apt,而 kpachage 就不那麼像 apt 了。 

大部分的桌面用 linux 版本都有摒棄命令行的傾向,不過,apt-get 是一個 命令
行是最好的 的特例。它的存在正是那些基於 debian 的系統大行其到的緣由。並且
apt-get 甚至已經被移植到 rpm 系統之中了。ui

相關文章
相關標籤/搜索