跳到主要内容

Linux dpkg 命令 - 管理 Debian 软件包

介绍

dpkg(英文全拼:Debian package)命令是 Debian Linux 系统用来安装、创建和管理软件包的实用工具。它是 Debian 软件包管理器的基础,由伊恩·默多克创建于1993年。

从名称可以看出,dpkg 是专门为 Debian 开发的套件管理系统,方便软件的安装、更新及移除。实际上,所有源自 Debian 的 Linux 发行版都可以使用 dpkg 来管理软件包,例如 Ubuntu、Knoppix 等。

dpkg 本身是一个底层的工具,被用于安装、卸载和查询 .deb 软件包相关的信息。上层的工具,如 apt 则被用于从远程获取软件包以及处理复杂的软件包关系。

语法

dpkg [option...] action

选项

  • -i, --install :安装软件包。
  • -r, --remove :删除软件包。
  • -l, --list :显示已安装软件包列表。
  • -L, --listfiles :显示于软件包关联的文件。
  • -c :显示软件包内文件列表。
  • -?, --help :显示帮助信息。
  • --version :显示版本信息。

示例

安装软件包

dpkg -i <package-file>
dpkg -i helloworld_1.0.deb # 以 helloworld_1.0.deb 软件包为例

安装一个目录(如 /usr/local/src)下面所有的软件包

dpkg -R /usr/local/src

释放软件包,但是不进行配置

dpkg --unpack <package-file>

重新配置和释放软件包

dpkg --configure <package-file>

卸载软件包(保留其配置信息)

dpkg -r <package-file>

卸载软件包(包括配置信息)

dpkg -P <package-file>
dpkg --purge <package-file>

列出已安装的软件包

dpkg -l
dpkg -l | grep helloworld # 在已安装的软件包中搜索 helloworld

列出软件包的内容(目录信息)

dpkg -c <package-file>

从软件包里面读取软件的信息

dpkg -A <package-file>

替代软件包的信息

dpkg --update-avail [Packages-file]

合并软件包信息

dpkg --merge-avail [Packages-file]

丢失所有的 Uninstall 的软件包信息

dpkg --forget-old-unavail

删除软件包的 Avaliable 信息

dpkg --clear-avail

查找只有部分安装的软件包信息

dpkg -C

比较同一个包的不同版本之间的差别

dpkg --compare-versions ver1 op ver2

创建一个 deb 文件

dpkg -b <directory> <package-file>
dpkg --build <directory> <package-file>

显示一个 deb 软件包的描述信息

dpkg -I <package-file>

报告指定软件包的状态信息(是否已安装)

dpkg -s <package-file>

显示一个软件包安装到系统里面的文件目录信息(该软件包必须已安装)

dpkg -L <package-file>
dpkg -L vim # 以 vim 为例

搜索指定软件包里面的文件(模糊查询)

dpkg -S <filename-search-pattern>