有用的 apt (dpkg) 指令

有用的 apt (dpkg) 指令

請發布您鮮為人知但有用的 apt 命令,包括 apt-*、dpkg 或 aptitude。

答案1

我經常使用的一些命令:

查看依賴關係和反向依賴關係:

apt-cache [--important] [--installed] [--recurse] depends $package
apt-cache rdepends $package

若要刪除套件、所有自動刪除套件以及所有相關設定檔:

sudo apt-get --purge --auto-remove purge $package

若要查看實際的apt配置選項:

apt-config dump | less

在命令列上修改選項

$ apt-config dump | grep -i recommend
APT::Install-Recommends "1";
$ sudo apt-get -o APT::Install-Recommends="0" install $package

這只是透過命令列指定 APT 選項的範例,為了避免安裝建議的軟體包,您可以使用:

sudo apt-get --no-install-recommends $package

要查看所有本地/過時的軟體包:

aptitude search ~o

若要查看已刪除的軟體包以及剩餘配置:

aptitude search ~c

並刪除它們

sudo aptitude purge ~c

取得所有已安裝軟體包的清單(dpkg -l有時可以給出截斷的列輸出)

dpkg --get-selections | awk '{ print $1 }'

或者

dpkg-query -Wf '${Package}\n'  # other fields available, see man page

要拆解、修改然後重新組裝包

dpkg-deb -x file.deb ./dir
cd dir 
dpkg-deb -e ../file.deb
# apply your modification, then... 
cd ..
dpkg-deb -b dir file-new.deb

答案2

我常用的兩個是:-

apt-get autoremove <packagename>

這將刪除該套件和任何未使用的依賴項,如果您嘗試應用程序,然後決定不需要它,並且希望也刪除多餘的內容,這將很有用。

dpkg -S /path/to/file

它告訴我文件是與哪個包一起安裝的。

最後再來一張..

dpkg -l <packagename> | grep ^ii

列出軟體包,但僅列出那些狀態為 ii 的軟體包,這表示它們已安裝,因此它不會顯示我已刪除的內容。

如果您希望取得未安裝的檔案的套件名稱(dpkg -S但對於未安裝的套件),請安裝apt-file並執行:

apt-file search /path/to/file

答案3

查看套件的ChangeLog

$ aptitude changelog <pkgname>

例子:

$ aptitude changelog sudo
sudo (1.7.0-1ubuntu2.4) karmic-security; urgency=low

  * SECURITY UPDATE: properly handle multiple PATH variables when using
    secure_path in env.c
    - Adapted http://www.sudo.ws/repos/sudo/raw-rev/a09c6812eaec
    - CVE-2010-1646
...

答案4

若要取得以「apt-」開頭的清單指令,請執行下列操作。打開終端並輸入“apt-”,然後按 TAB 鍵兩次,這將列出所有以“apt-”開頭的命令。

範例輸出:

apt-add-repository    apt-extracttemplates  apt-key
apt-cache             apt-file              apt-mark
apt-cdrom             apt-ftparchive        apt-sortpkgs
apt-config            apt-get 

要獲取詳細信息,您可以查看特定命令的手冊頁

例如:man apt-get

相關內容