APT

APT套件在CMD上的前端處理套件。這個指令是設計給end-user用的,功能上可能會在版本之間不太一樣,所以要小心它不一定會跟之前的版本相容。對於很多人來說,會很疑惑這個工具跟『apt-get』到底哪裡不一樣,其實這個工具就是把『apt-get』和『apt-cache』整合在一起,然後在改變一些『apt.conf』上的options,主要就是把一些不太使用的『actions』和『options』拿掉,比較不會讓使用者混亂,所以答案是:

  1. 如果你本來就習慣『apt-get』跟『apt-cache』的話,那就繼續用這個組合就好。
  2. 如果你是個新手,不太確定要用哪個指令,那就直接用『APT』,當然可能還是要看『apt-get』的相關『options』,會有一些是『APT』目前不支援的功能。
(我在寫這篇文章時,APT的版本是1.2.15,裡面有些功能的狀態還是-work-in-progress,所以代表這個功能還沒完全)

語法

apt [-h] [-o=config_string] [-c=config_file][-t=target_release] [-a=architecture] {list | search | show | update | install pkg [{=pkg_version_number | /target_release}]... | remove pkg... | upgrade | full-upgrade | edit-sources | {-v | --version} | {-h | --help}}

Actions

(底下列出的格式為 [action (整合的軟體)])

update (apt-get(8))

用來更新從所有組態來源所下載的套件資訊,其他的命令都會參考到這個資訊,像是『upgrades』和『search』就會參考到這份清單。

upgrade (apt-get(8))

『upgrade』是用來升級目前系統裡面有安裝的套件的,主要是你的『sources.list』裡面有相關的repo,並且你有執行『update』以後系統有發現遠端資料庫有相關的更新才會執行。但是有一個限制是你的套件相依性都需要滿足以後才能進行升級,而且既存的套件將不會被移除,所以如果升級套件時發現有其他已經安裝的套件會被移除的話,則升級就會取消。

full-upgrade (apt-get(8))

『full-upgrade』也是會升級目前系統裡面有安裝的套件的,跟『upgrade』的差別是如果需要刪除一些檔案才能更新的話,則那些檔案將會被刪除。

install (apt-get(8))

remove (apt-get(8))

purge (apt-get(8))

以上三個actions除了可以具體指定套件名稱以外,也可以透過regex或是glob等等的正規表示式來執行動作請求,也可以在套件後面加(-/+)來代表安裝或是移除,舉例來說,底下的兩個狀況是一樣的:

apt install vim 等於 apt install vim+ 等於 apt remove vim+
apt remove vim 等於 apt install vim- 等於apt remove-

但是老實說,我不知道這樣要幹麻就對了=.=

如果要具體的安裝特定版本的套件就需要用『套件名稱』加『=』在加『版本』,就像是下面這個例子:

sudo apt install gnome-mines=1:3.18.2-2

除了軟體版本以外,還可以指定發行板的板號,格式的話是『套件名稱』加『/』在加『codename』(像是jessie, stretch, sid ...)或是『suite name』(像是stable, testing, unstable),如果有相依性的話,也有可能要指定軟體的版號,底下給個例子:

sudo apt install gnome-mines/xenial

『remove』的話,則是會移除套件的資料,但是不會移除相關的組態或設定檔,以防止意外。如果不小心刪掉的話,則在重新使用『install』安裝就好,因為之前設定檔跟組態都在,所以就不會怎樣。

但是如果你使用『purge』的話,你套件的所有資料包含所有的設定跟組態都會被刪除,所以使用『purge』一定要小心,但是如果你有相關資料存放在你的『home』裡面的話,則你就不用擔心,因為不會被刪掉。

autoremove (apt-get(8))

當初因為其他套件的相依性所以也被順便自動安裝的相依套件,但是後來不在需要了,或是依賴他的套件已經被移除了,那當你執行『autoremove』時,這類型的套件就會被移除。反之,如果是你有明確使用『install』來安裝的套件則不會被影響。

如果有需要的話你可以檢查一下這些清單,如果你發現有些東西你還有要用的話,你可以使用『apt-mark』來將其標著成那是你手動安裝的,這樣這些套件就不會被『autoremove』給刪掉了。

search (apt-cache(8))

『search』可以用來搜尋相關可取得的套件,當然也可以使用正規表示法來搜尋,如果你想要具體的搜尋某個檔案是包含在哪個套件裡面的話,可以使用『apt-file』來查找。

show (apt-cache(8))

顯示套件的資訊,包含其相依性,套件的下載和安裝的size,套件的來源,套件的描述等等。通常是移除套件前確認或是『search』完後可以看一下更進階的資訊。

list

這個命令有點像是『dpkg-query --list』,它可以顯示一系列相關分類的套件,也可以使用glob pattern來搜尋,也可以使用options像是『--installed』,『--upgradeable』,『--all-versions』來搜尋不同狀況分類的套件。

edit-sources

『edit-source』可以讓你編輯你的『sources.list』檔案。

results matching ""

    No results matching ""