Ubuntu(Debian)apt-get

Ubuntu(Debian)的aptitude與apt-get的區別和聯繫

 

      最近在使用Puppet快速部署Openstack,看到一些沒見過的工具,例如aptitude,在Ubuntu上有強大的apt-get爲何還要用這個呢。本文轉自:http://hi.baidu.com/52safe/blog/item/c17891ff02201653d6887d96.htmlhtml

  起初GNU/Linux系統中只有.tar.gz。用戶 必須本身編譯他們想使用的每個程序。在Debian出現之後,人們認爲有必要在系統 中添加一種機 制用來管理 安裝在計算機上的軟件包。人們將這套系統稱爲dpkg。至此着名的‘package’首次在GNU/Linux上出現。不久之後紅帽子也開始着 手創建本身的包管理系統 ‘rpm’。ubuntu

GNU/Linux的創造者們很快又陷入了新的窘境。他們但願經過一種快捷、實用並且高效的方式來安裝軟件包。這些軟件包能夠自動處理相互之間 的依賴關係,而且在升級過程當中維護他們的配置文件 。Debian又一次充當了開路先鋒的角色。她獨創了APT(Advanced Packaging Tool)。這一工具後來被Conectiva 移植到紅帽子系統中用於對rpm包的管理。在其餘一些發行版中咱們也能看到她的身影。

「同時,apt是一個很完整和先進的軟件包管理程序,使用它可讓你,又簡單,又準確的找到你要的的軟件包, 而且安裝或卸載都很簡潔。 它還可讓你的全部軟件都更新到最新狀態,並且也能夠用來對ubuntu 進行升級。」緩存

「apt是須要用命令 來操做的軟件,不過如今也出現了不少有圖形的軟件,好比Synaptic, Kynaptic 和 Adept。」bash

命令工具

下面將要介紹的全部命令都須要sudo!使用時請將「packagename」和「string」替換成您想要安裝或者查找的程序。post

* apt-get update——在修改/etc/apt/sources.list或者/etc/apt/preferences之後運行該命令。此外您須要按期運行這一命令以確保您的軟件包列表是最新的。ui

* apt-get install packagename——安裝一個新軟件包(參見下文的aptitude )url

* apt-get remove packagename——卸載一個已安裝的軟件包(保留配置文件)命令行

* apt-get –purge remove packagename——卸載一個已安裝的軟件包(刪除配置文件)3d

* dpkg –force-all –purge packagename 有些軟件很難卸載,並且還阻止了別的軟件的應用 ,就能夠用這個,不過有點冒險。

* apt-get autoclean apt會把已裝或已卸的軟件都備份在硬盤上,因此若是須要空間 的話,可讓這個命令來刪除你已經刪掉的軟件

* apt-get clean 這個命令會把安裝的軟件的備份也刪除,不過這樣不會影響軟件的使用的。

* apt-get upgrade——更新全部已安裝的軟件包

* apt-get dist-upgrade——將系統升級到新版本

* apt-cache search string——在軟件包列表中搜索字符串

* dpkg -l package-name-pattern——列出全部與模式相匹配的軟件包。若是您不知道軟件包的全名,您可使用「*package-name-pattern*」。

* aptitude——詳細查看已安裝或可用的軟件包。與apt-get相似,aptitude能夠經過命令行方式調用,但僅限於某些命令——最多見的有安裝和卸載命令。因爲aptitude比apt-get瞭解更多信息,能夠說它更適合用來進行安裝和卸載。

* apt-cache showpkg pkgs——顯示軟件包信息。

* apt-cache dumpavail——打印可用軟件包列表。

* apt-cache show pkgs——顯示軟件包記錄,相似於dpkg –print-avail。

* apt-cache pkgnames——打印軟件包列表中全部軟件包的名稱。

* dpkg -S file——這個文件屬於哪一個已安裝軟件包。

* dpkg -L package——列出軟件包中的全部文件。

* 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-get autoclean——按期運行這個命令來清除那些已經卸載的軟件包的.deb文件。經過這種方式,您能夠釋放大量的磁盤空間。若是您的需求十分迫切,可使用apt-get clean以釋放更多空間。這個命令會將已安裝軟件包裹的.deb文件一併刪除。大多數狀況下您不會再用到這些.debs文件,所以若是您爲磁盤空間不足而感到焦頭爛額,這個辦法也許值得一試。

典型應用

  • 我是個賽車發燒友,想裝個賽車類遊戲玩玩。有哪些賽車類遊戲可供選擇呢?
  • 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」。
  • dpkg -L torcs|grep /usr/games/
  • 這個命令的前面一部分顯示軟件包「torcs」安裝的全部文件(您本身試試看)。經過命令的第二部分,咱們告訴系統只顯示前一部分的輸出結果中含有「/usr/games」的那些行。
  • 這個遊戲很酷哦。說不定還有其餘賽道可玩的?
  • apt-cache search torcs
  • 個人磁盤空間不夠用了。我得把apt的緩存空間清空才行。
  • apt-get clean
  • 哦不,老媽叫我把機器上的全部遊戲都刪掉。可是我想把配置文件保留下來,這樣待會我只要重裝一下就能夠繼續玩了。
  • 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’」。

———————————————————————————————-

aptitude 與 apt-get 同樣,是 Debian 及其衍生系統中功能極其強大的包管理工具。與 apt-get 不一樣的是,aptitude 在處理依賴問題上更佳一些。舉例來講,aptitude 在刪除一個包時,會同時刪除自己所依賴的包。這樣,系統中不會殘留無用的包,整個系統更爲乾淨。如下是筆者總結的一些經常使用 aptitude 命令,僅供參考。
命令 做用
aptitude update 更新可用的包列表
aptitude upgrade 升級可用的包
aptitude dist-upgrade 將系統升級到新的發行版
aptitude install pkgname 安裝包
aptitude remove pkgname 刪除包
aptitude purge pkgname 刪除包及其配置文件
aptitude search string 搜索包
aptitude show pkgname 顯示包的詳細信息
aptitude clean 刪除下載的包文件
aptitude autoclean 僅刪除過時的包文件

固然,你也能夠在文本界面模式中使用 aptitude。

 

有的問題 apt-get 解決不了,必須使用 aptitude 解決,有的問題,用 aptitude 解決不了,必須使用 apt-get

  • aptitude 解決得更好的地方: install, remove, reinstall(apt-get無此功能), show(apt-get無此功能), search(apt-get無此功能), hold(apt-get無此功能), unhold(apt-get無此功能), 
  • apt-get 解決得更好的地方: source(aptitude無此功能), build-dep (低版本的aptitude沒有build-dep功能)
  • apt-get 跟 aptitude 沒什麼區別的地方:update, upgrade (apt-get upgrade=aptitude safe-upgrade, apt-get dist-upgrade=aptitude full-upgrgade)
相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息