apt-get包管理經過source.list文件獲取源。關於修改和更新源文件,請查看 UbuntuHelp:SourcesList 數據庫
「起初 GNU/Linux 的世界中只有 .tar.gz。若是用戶要使用一個軟件,那就必須本身編譯。當 Debian 誕生之後,一種能管理操做系統中已安裝的軟件包的系統顯得頗有必要,這個系統被命名爲‘dpkg’。‘軟件包’一詞在此第一次出如今 GNU/Linux。不久以後,紅帽公司建立了他們本身的包管理系統‘rpm’。 ubuntu
「GNU/Linux 的創造者們很快又陷入了新的窘境。他們但願經過一種快捷、實用並且高效的方式來安裝軟件包,並能自動處理相互之間的依賴關係,還要在軟件包升級過程當中維護 好配置文件。Debian 又一次充當了開路先鋒的角色,她獨創了 APT(Advanced Packaging Tool,高級軟件包管理工具)。這一工具後來被 Conectiva 移植到紅帽公司的 rpm 包管理系統。在其餘一些發行版中,咱們也能看到 APT 的身影。」 緩存
-- 引自:Debian APT HOWTO bash
如下命令須要在前面加上 sudo 以得到 root 權限。 根據實際狀況,替換「軟件包名稱」或「字符串」爲具體內容。 服務器
apt-get update
- 在你更改了/etc/apt/sources.list 或 /etc/apt/preferences 後,須要運行這個命令以令改動生效。同時也要按期運行該命令,以確保你的源列表是最新的。該命令等價於新立得軟件包管理器中的「刷新」,或者是 Windows和OS X 下的 Adept 軟件包管理器的 「check for updates」。 apt-get upgrade
- 更新全部已安裝的軟件包。相似一條命令完成了新立得軟件包管理器中的「標記全部軟件包以便升級」而且「應用」。 apt-get dist-upgrade
- 更新整個系統到最新的發行版。等價於在新立得軟件包管理器中「標記全部更新」,並在首選項裏選擇「智能升級」 -- 這是告訴APT更新到最新包,甚至會刪除其餘包(注:不建議使用這種方式更新到新的發行版)。 apt-get -f install
-- 等同於新立得軟件包管理器中的「編輯->修正(依賴關係)損毀的軟件包」再點擊「應用。若是提示「unmet dependencies」的時候,可執行這行命令。 apt-get autoclean
- 若是你的硬盤空間不大的話,能夠按期運行這個程序,將已經刪除了的軟件包的.deb安裝文件從硬盤中刪除掉。若是你仍然須要硬盤空間的話,能夠試試apt-get clean
,這會把你已安裝的軟件包的安裝包也刪除掉,固然多數狀況下這些包沒什麼用了,所以這是個爲硬盤騰地方的好辦法。 apt-get clean
相似上面的命令,但它刪除包緩存中的全部包。這是個很好的作法,由於多數狀況下這些包沒有用了。但若是你是撥號上網的話,就得從新考慮了。 du -sh /var/cache/apt/archives
將告訴你包緩存所佔用的硬盤空間。 dpkg-reconfigure foo
- 從新配置「foo」包。這條命令頗有用。當一次配置不少包的時候, 要回答不少問題,但有的問題事先並不知道。例如,dpkg-reconfigure fontconfig-config
,在Ubuntu系統中顯示字體配置嚮導。每次我安裝完一個 Ubuntu 系統,我都會運行這行命令,由於我但願位圖字體在個人全部應用程序上都有效。 echo "foo hold" | dpkg --set-selections
- 設置包「foo」爲hold,不更新這個包,保持當前的版本,當前的狀態,當前的一切。相似新立得軟件包管理器中的「軟件包->鎖定版本」。 apt-get dist-upgrade
會覆蓋上面的設置,但會事先提示。 另外,你必須使用 sudo。輸入命令echo "foo hold" | sudo dpkg --set-selections
而不是sudo echo "foo hold" | dpkg --set-selections
echo "foo install
-- 刪除「hold」「locked package」狀態設置。命令行爲echo "foo install" | sudo dpkg --set-selections
apt-show-versions -u
apt-show-versions工具能夠告訴你係統中哪些包能夠更新以及其它 一些有用的信息。-u選項能夠顯示可更新軟件包列表,這個工具默認沒有安裝,可是每次update完了之後,用這個工具看看很是方便,值得一裝。 apt-get remove 軟件包名稱
- 刪除已安裝的軟件包(保留配置文件) apt-get --purge remove 軟件包名稱
- 刪除已安裝包(不保留配置文件) apt-get --purge remove foo bar+
。 apt-get autoremove
- 刪除爲了知足其餘軟件包的依賴而安裝的,但如今再也不須要的軟件包。 apt-cache search foo
- 搜索和"foo"匹配的包。 apt-cache show foo
- 顯示"foo"包的相關信息,例如描述、版本、大小、依賴以及衝突。 dpkg --print-avail 軟件包名稱
- 與上面相似。 dpkg -l *foo*
- 查找包含有"foo"字樣的包。與apt-cache show foo
相似,可是還會顯示每一個包是安裝了仍是沒安裝。 dpkg -l package-name-pattern
- 列出名爲package-name-pattern的軟件包。除非你知道軟件包的正確全稱,不然可使用「*package-name-pattern*」. dpkg -L foo
- 顯示名爲「foo」的包都安裝了哪些文件以及它們的路徑,頗有用的命令。 dlocate foo
- 在已安裝的包中搜索「foo」的文件。對於回答「這個文件來源於哪一個包」這個問題,是很是實用的。dlocate是一個軟件包,必須安裝它才能使用本命令。 dpkg -S foo
- 和上面的命令同樣,但相比更慢一些。他只能在Debian或Ubuntu系統下運行。另外,不須要安裝dlocate包。 apt-file search foo
- 相似dlocate和dpkg -S,但搜索全部有效軟件包,不僅僅只是你係統上的已安裝的軟件包。-- 它所回答的問題是「哪些軟件包提供這些文件」。你必須安裝有apt-file軟件包,而且確保apt-file數據庫是最新的。 dpkg -c foo.deb
- 「foo.deb」包含有哪些文件?注:foo.deb是含路徑的文件名。-- 這個是針對你本身下載的.deb包。 apt-cache dumpavail
- 顯示全部可用軟件包,以及它們各自的詳細信息(會產生不少輸出)。 apt-cache show 軟件包名稱
- 顯示軟件包記錄,相似dpkg --print-avail 軟件包名稱
。 apt-cache pkgnames
- 快速列出已安裝的軟件包名稱。 apt-file search filename
- 查找包含特定文件的軟件包(不必定是已安裝的),這些文件的文件名中含有指定的字符串。apt-file是一個獨立的軟件包。您必須先使用 apt-get install 來安裝它,而後運行 apt-file update。若是 apt-file search filename 輸出的內容太多,您能夠嘗試使用 apt-file search filename | grep -w filename
(只 顯示指定字符串做爲完整的單詞出如今其中的那些文件名)或者相似方法,例如:apt-file search filename | grep /bin/(只顯示位於諸如/bin或/usr/bin這些文件夾中的文件,若是您要查找的是某個特定的執行文件的話,這樣作是有幫助的)。 我是個賽車發燒友,想裝個賽車類遊戲玩玩。有哪些賽車類遊戲可供選擇呢? 網絡
apt-cache search racing game
出來了一大堆結果。我看到有個遊戲叫作「torcs」,看看有沒有更多信息。 工具
apt-cache show torcs
看上去不錯。這個遊戲是否是已經安裝了?最新版本是多少?它從哪一個源獲得,universe仍是main? 測試
apt-cache policy torcs
好吧,如今我要來安裝它! 字體
apt-get install torcs
在控制檯下我應該調用什麼命令來運行這個遊戲呢?在這個例子中,直接用「torcs」就好了,但並非每次都這麼簡單。咱們能夠經過查找哪些文件被 安裝到了 「/usr/bin」文件夾下來肯定二進制文件名。對於遊戲軟件,這些二進制文件將被安裝到「/usr/games」下面。對於系統管理工具相應的文件夾 是「/usr/sbin」。 ui
dpkg -L torcs|grep /usr/games/
這個命令的前面一部分顯示軟件包「torcs」安裝的全部文件(您本身試試看)。經過命令的第二部分,咱們告訴系統只顯示前一部分的輸出結果中含有「/usr/games」的那些行。
這個遊戲很酷哦。說不定還有其餘賽道可玩的?
apt-cache search torcs
個人磁盤空間不夠用了。我得把apt的緩存空間清空才行。
apt-get clean
哦不,老媽叫我把機器上的全部遊戲都刪掉。可是我想把配置文件保留下來,這樣下次我想玩的時候只要重裝一下就能夠了。 uuuuuuuuu
apt-get remove torcs
若是我想連配置文件一塊刪除:
apt-get remove --purge torcs
deborphan
和debfoster
工具能夠找出已經安裝在系統上孤立、無用的軟件包。
您能夠經過定義別名(alias)來提升這些命令的輸入速度。例如,您能夠在您的*~/.bashrc*文件中添加下列內容
alias acs='apt-cache search' alias agu='sudo apt-get update' alias agg='sudo apt-get upgrade' alias agd='sudo apt-get dist-upgrade' alias agi='sudo apt-get install' alias agr='sudo apt-get remove'
或者使用前面介紹的aptitude命令,如「alias agi='sudo aptitude install'」。
能夠經過三種方法爲apt-get設置http代理
注意:在Ubuntu 10.10及之後版本中,apt-get再也不讀取$http_proxy變量,所以只能使用方法2設置apt-get代理。另外,若是使用新立得軟件包管理器,則能夠在新立得中設置網絡代理(設置——首選項——網絡)
方法一
這是一種臨時的手段,若是您僅僅是暫時須要經過http代理使用apt-get,您可使用這種方式。
在使用apt-get以前,在終端中輸入如下命令(根據您的實際狀況替換yourproxyaddress和proxyport)。
export http_proxy=http://yourproxyaddress:proxyport
方法二
這種方法要用到/etc/apt/文件夾下的apt.conf文件。若是您但願apt-get(而不是其餘應用程序)一直使用http代理,您可使用這種方式。
注意: 某些狀況下,系統安裝過程當中沒有創建apt配置文件。下面的操做將視狀況修改現有的配置文件或者新建配置文件。
gksudo gedit /etc/apt/apt.conf
在您的apt.conf文件中加入下面這行(根據你的實際狀況替換yourproxyaddress和proxyport)。
Acquire::http::Proxy "http://yourproxyaddress:proxyport";
保存apt.conf文件。
方法三
這種方法會在您的主目錄下的.bashrc文件中添加兩行。若是您但願apt-get和其餘應用程序如wget等都使用http代理,您可使用這種方式。
gedit ~/.bashrc
在您的.bashrc文件末尾添加以下內容(根據你的實際狀況替換yourproxyaddress和proxyport)。
http_proxy=http://yourproxyaddress:proxyport export http_proxy
保存文件。關閉當前終端,然後打開另外一個終端。
使用apt-get update或者任何您想用的網絡工具測試代理。我使用firestarter查看活動的網絡鏈接。
若是您爲了糾正錯誤而再次修改了配置文件,記得關閉終端並從新打開,否自新的設置不會生效。
代理服務器的登陸
若是代理服務器須要登陸,那麼能夠在指定代理服務器地址的時候,用以下格式(根據狀況把username,password, yourproxyaddress和proxyport替換爲相應內容):
http_proxy=http://username:password@yourproxyaddress:proxyport