dpkg使用说明
===============

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

制作deb包
------------

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

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

.. code:: text

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

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

制作deb包命令参考如下：

.. code:: text

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

control文件参考示例：

.. code:: text

        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.

常用测试命令
---------------

列举一些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``

  删除时，直接删除即可。
