分享

Ubuntu APT命令

 tcwl123 2010-11-07

Ubuntu APT命令

linux 2010-05-25 14:29:54 阅读50 评论0  字号: 订阅

軟體包安裝

apt-get install 软件包名称 - 安裝一個新軟體包 (參見下面的 Aptitude)。

aptitude - Ncurses (譯註:一種 API,在命令行模式下做出類似GUI的界面)製作的已安裝和可安裝的軟體包查看器。 Aptitude 也可以像 apt-get 一樣在命令行下使用,不過它只包含 apt-get 一部分的指令,例如常用的 install 和 remove 之類。不過因為 Aptitude 能比 apt-get 顯示更多信息,因此在安裝和卸載軟體的時候要更好用一些。

auto-apt run 命令 - 這條命令可以自動安裝包含缺失文件的軟體包。如果這裏的「命令」在運行的時候訪問了一個系統中沒有的文件,那麼 auto-apt 會用 apt-get 來安裝包含缺失文件的的軟體包。這項功能需要有 APT 以及 sudo 來工作。 比如說你在編譯一個軟體,但是彈出一個錯誤說你缺少某個文件,那麼 auto-apt 就會詢問你是否要安裝包含這個缺少的文件的軟體包。同樣它也會暫停相應的編譯進程,並且在安裝完畢之後恢復它。例如可以這樣用:
     # auto-apt run ./configure
這樣如果缺少文件,auto-apt 就會自動使用 apt-get 來安裝它。如果 X 伺服器正在運行,也會有相應的圖形界面。 auto-apt 有一個資料庫,需要必要的更新以適應不斷的變化。更新的命令為 auto-apt updatedb 以及 auto-apt update-local。

軟體包維護

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-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這些文件夾中的文件,如果您要查找的是某個特定的執行文件的話,這樣做是有幫助的)。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多