1. 程式人生 > >ubuntu16.04軟體包管理

ubuntu16.04軟體包管理

源文連結:https://help.ubuntu.com/lts/serverguide/package-management.html


ubuntu包管理簡介(Package Management)

ubuntu系統有一個整合安裝、升級、配置和解除安裝的軟體包管理系統。該軟體包管理系統除了包含超過45000軟體包的庫外,它的設施還能夠解決軟體包之間的依賴問題和更新檢測。使用者可以有很多工具與包管理系統之間互動,既有命令列工具也有圖形化介面的。
ubuntu的包管理系統源自Debian GNU/Linux的包管理系統,包檔案(package files)包含實現軟體功能的所有必要檔案、元資料和介紹。
Debian的包檔案通常字尾是 ‘.deb’,包通常是已經編譯成二進位制檔案的,安裝很快,不需要再編譯。許多複雜的包需要依賴其他包,ubuntu的軟體包管理系統可以自動解決這個問題。

包管理工具

dpkg

dpkg是基於Debian的系統所用的包管理工具,可以安裝、解除安裝和編譯包,但是不能自動解決依賴問題。是Debian早期的包管理工具,後來才出現的apt。
- dpkg -l | grep “xxx”
列出所有安裝的軟體包,grep用來篩選。
- dpkg -L packagename
列出這個軟體包安裝在檔案系統中產生的檔案。
- dpkg -S filename
列出這個檔案是由哪個軟體包的安裝產生的。
- dpkg -i packagename.deb
安裝軟體包
-dpkg -r packagename
解除安裝軟體包,不建議,因為其他依賴於packagename的軟體可能不能正常工作。

apt

apt命令是一個強大的命令列工具,與ubuntu的Advanced Packaging Tool協同工作來完成新軟體包的安裝,已安裝軟體包的升級,軟體包列表的更新,甚至可以更新整個ubuntu系統。作為一個命令列工具,apt在ubuntu系統中的運用最便捷靈活,可以通過終端連線使用,可以寫入系統管理員的指令碼中等等。apt管理安裝包主要依賴於列表檔案,所以在執行安裝升級操作前都最好更新一下這個列表。
- apt install packagename
- apt remove packagename
- apt remove –purge packagename
會刪除包的配置檔案,這個操作會引發一定的危險,需謹慎。
- apt update
更新安裝包的列表,主要是更新’/etc/apt/sources.list’和‘/etc/apt/sources.list.d’中的檔案
- apt upgrade
根據列表更新安裝包。
另外,這裡推薦一個看到的關於apt很好的介紹

牛皮糖的blog 。這裡摘錄一下。


我是個賽車發燒友,想裝個賽車類遊戲玩玩。有哪些賽車類遊戲可供選擇呢?
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工具可以找出已經安裝在系統上的不會被用到的軟體包。


aptitude

aptitude is a featureful package manager for Debian GNU/Linux systems。aptitude 與 apt-get 一樣,是 Debian 及其衍生系統中功能極其強大的包管理工具。與 apt-get 不同的是,aptitude是建立在apt基礎之上的,可以提供apt和dselect的功能以及其他二者沒有的功能。舉例來說,aptitude 在刪除一個包時,會同時刪除本身所依賴的包。這樣,系統中不會殘留無用的包,整個系統更為乾淨。以下是筆者總結的一些常用 aptitude 命令,僅供參考。詳細可以查閱這個連結debianmanual-aptitude
- aptitude update 更新可用的包列表
- aptitude safe-upgrade 升級可用的包,但是不會刪除無用的包
- aptitude safe-upgrade 激進地升級可用的包,會自動處理依賴關係,但這個動作也存在隱患
- aptitude dist-upgrade 將系統升級到新的發行版
- aptitude install pkgname 安裝包
- aptitude remove pkgname 刪除包
- aptitude purge pkgname 刪除包及其配置檔案
- aptitude search string 搜尋包
可以加多個以空格分割的string,搜尋的邏輯是或,含有任意的字串都會打印出來。
- aptitude show pkgname 顯示包的詳細資訊
- aptitude clean 刪除下載的包檔案
- aptitude autoclean 僅刪除過期的包檔案
另外在install/remove/upgrade動作後都可以加上‘-s’引數,會顯示出模擬的動作但不會實際執行。