Skip to content

# 3.10. dpkg使用说明

dpkg是Debian包管理系统的基础工具，用于动态管理”.deb”文件格式包。

## 3.10.1. 制作deb包

使用dpkg目的是方便管理软件的安装、卸载或者更新等。对于期望动态管理的软件，按照要求制作deb包后，即可通过dpkg方式管理。

Linux基金会制定了对于程序和库默认安装位置标准，建议以标准要求对其进行配置。其中，deb包的文件目录结构参考如下说明：

    |--------usr
        |--------lib
            |--------lib库
        |--------bin
            |--------可执行文件
    |--------etc
        |--------配置文件
    |--------DEBIAN
        |--------control(描述deb包信息的文件，不可省略)
        |--------preinst(软件包安装之前执行的脚本，比如停止服务或者卸载旧版本的软件包)
        |--------postinst(软件包安装之后执行的脚本，比如启动服务)
        |--------prerm(停止软件包的相关进程，卸载软件包前执行)
        |--------postrm

用户可根据实际需求，结合制定标准，确认安装位置标准。对于DEBIAN的配置文件，除了control信息不可省略，其他按需配置。

制作deb包命令参考如下：

    # debian_dst_dir：指定要打包deb的源目录
    # pkg_name：指定打包deb包的文件名
    dpkg -b ${debian_dst_dir} ${debian_dst_dir}/${pkg_name}.deb

control文件参考示例：

    Package: hobot-hbaudio
    Version: 1.0.0
    Architecture: arm64
    Maintainer: support@horizon.ai
    Depends: hobot-dtb
    Installed-Size: 168
    Description: hobot hbaudio. Provide lib and bin.

## 3.10.2. 常用测试命令

列举一些dpkg管理deb包的常用命令，比如安装、卸载deb包等。

- 检查当前已安装包

  `dpkg -l`

- 安装/卸载deb包

  - 安装

    `dpkg -i *.deb`

  - 卸载

    `dpkg -r package-name`

- 显示deb包文件信息

  `dpkg -c *.deb`

- 显示deb包文件安装到系统的目录信息

  `dpkg -L package-name`

- 显示软件包信息

  `dpkg -s package-name`

- 指定安装目录方式安装

  `dpkg --instdir=[install_dir] -i *.deb`

  删除时，直接删除即可。