有用的 apt (dpkg) 命令

有用的 apt (dpkg) 命令

请发布您不太知名但有用的涉及 apt-*、dpkg 或 aptitude 的 apt 命令。

答案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

查看软件包的变更日志

$ 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

相关内容