dpkg说明

  • Post author:
  • Post category:其他


dpkg与centos中的rpm相似,被用于安装,卸载及查询deb包信息。下面简单介绍基础命令。

已有安装包:test.deb。

安装命令:

dpkg -i test.deb 安装test.deb软件包

dpkg -c test.deb #查看test.deb软件包中包含的文件结构

安装后查询命令:

dpkg -I test查看已安装的test.deb软件包的详细信息,包括软件名称、版本等

dpkg -L test #查看已安装test.deb软件包安装的所有文件

dpkg -s test #查看test.deb软件包的详细信息

dpkg -S filepath#查看某个文件属于哪个deb包

dpkg-query -S filepath #查看某个文件属于哪个deb包

dpkg -X test.deb directory#提取deb包中的文件

dpkg -e test.deb directory #提取deb包的控制信息

更新软件包命令:

dpkg -update-avail test.deb

卸载命令:

dpkg -r test #卸载test.deb软件包 (保留配置信息)

dpkg -P test #卸载test.deb软件包 (包括配置信息)

注:dpkg命令无法自动解决依赖关系。




如何获得命令属于的包

有时候,一个包里面包含非常多的命令,比如coreutils,包含很多有用的命令工具,如果我们看到一个命令,比如ls,应该如果知道他属于哪个包呢?

/bin$ which ls -l
/bin/ls
/bin$ dpkg-query -S /bin/ls 
coreutils: /bin/ls



如何获得包源码

最直接的做法,搜索引擎找这个包,可以找到

www.gnu.org/software/coreutils

再进到网站去下载对应的源码,但是其实apt命令已经帮我们实现了这个路径。

$ apt source coreutils



dpkg编译:

  1. deb源码包由以下文件组成:.debian.tar.xz 文件 .dsc文件和.tar.gz文件。

    得到这三个文件之后,执行

    dpkg-source -x xxx.dsc

    ,可生成源码目录

  2. xz -d xx.debian.tar.xz

    生成

    xx.debian.tar



    tar -xvf xx.debian.tar

    可生成补丁文件。

    路径为:debian/patches/
  3. 编译包:

    dpkg-buildpackage -us -uc

    //

    dpkg-buildpackage -b -rfakeroot -us -uc
  4. 安装包:

    dpkg -i 包名.deb
使用apt-get 安装以下工具:dh-make ,devscripts。
使用apt-get install dh-make 将安装 debhelper dh-make html2text三个包。
使用apt-get install devscripts ,这个是使用debuild所需要的。


问题1:


dpkg-source: 错误: can’t build with source format ‘3.0 (quilt)’: no upstream tarball found at …/caja_1.24.0.orig.tar.{bz2,gz,lzma,xz}

 rm ./debian/source/format 

在这里插入图片描述


quilt改为native


vim debian/source/format

在这里插入图片描述

可以把format文件中的quilt改为native,否则在未添加quilt的patch文件之前修改代码文件构建源码包会报错(quilt表示上游包,native表示自建包):



版权声明:本文为linbounconstraint原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。