命令 以下命令需要在前面加上 sudo 以獲得 root 許可權。 根據實際情況,替換“軟體包名稱”或“字元串”為具體內容。 軟體包維護 apt-get update - 在你更改了/etc/apt/sources.list 或 /etc/apt/preferences 後,需要運行這個命令以令改動生 ...
命令
以下命令需要在前面加上 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
類似上面的命令,但它刪除包緩存中的所有包。這是個很好的做法,因為多數情況下這些包沒有用了。但如果你是撥號上網的話,就得重新考慮了。- 包緩存的路徑為/var/cache/apt/archives,因此,
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 軟體包名稱
- 刪除已安裝包(不保留配置文件)- 特別技巧:如果你想在刪除‘foo’包同時安裝‘bar’:
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這些文件夾中的文件,如果您要查找的是某個特定的執行文件的話,這樣做是有幫助的)。
提高命令行方式下的工作效率
您可以通過定義別名(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'
新版apt介紹
下麵我們列出 Debian 中使用 APT 命令與老版本 Debian 中軟體包管理的用法對比:
新的apt管理工具 | 老版本apt管理工具 |
---|---|
apt install 包名 | 替代 apt-get install 包名 |
apt remove 包名 | 替代 apt-get remove 包名 |
apt search 包名 | 替代 apt-cache search 包名 |
apt show 包名 | 替代 apt-cache show 包名 |
apt update | 替代 apt-get update |
apt upgrade | 替代 apt-get upgrade |
apt list –installed | 替代 dpkg -l |
apt edit-sources | 替代 sudo nano /etc/apt/sources.list |
apt autoremove | 替代 apt-get autoremove |
apt purge 包名 | 替代 apt-get purge 包名 |
新版詳細的介紹可以輸入man apt命令查看。
man命令:是Linux下的幫助指令,通過man指令可以查看Linux中的指令幫助、配置文件幫助和編程幫助等信息。
參考: