Skip to content Skip to main navigation Skip to footer

Ubuntu 下查看并提取deb软件包里的文件

本文将会讲述如何在Ubuntu系统下查看并提取其特有的deb软件包里的文件的方法。
下面我们通过两种方法来提取ubuntu系统下的deb软件包
首先我们先通过下面的apt-get命令下载一个deb软件包:

$ sudo apt-get download wget

命令输出:

获取:1 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 wget amd64 1.17.1-1ubuntu1.2 [298 kB]
 已下载 298 kB,耗时 0秒 (396 kB/s)

查看下载的deb软件包:

$ ls wget*
 wget_1.17.1-1ubuntu1.2_amd64.deb

方法一:使用ar工具来提取ubuntu里的.deb 软件包

1# 安装ar 工具
执行下面的命令:

$ sudo apt-get install binutils

命令输出如下:

正在读取软件包列表... 完成
 正在分析软件包的依赖关系树
 正在读取状态信息... 完成
 binutils 已经是最新版 (2.26.1-1ubuntu1~16.04.4)。
 binutils 已设置为手动安装。
 下列软件包是自动安装的并且现在不需要了:
 gyp javascript-common libjs-inherits libjs-jquery libjs-node-uuid libjs-underscore libnvpair1linux libssl-dev libssl-doc
 libuutil1linux libuv1-dev libzfs2linux libzpool2linux python-pkg-resources zfs-doc zlib1g-dev
 使用'apt autoremove'来卸载它(它们)。
 升级了 0 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 5 个软件包未被升级。

2# 使用ar命令提取.deb 包
执行下面的命令:

$  ar vx wget_1.17.1-1ubuntu1.2_amd64.deb

命令输出如下:

x - debian-binary
 x - control.tar.gz
 x - data.tar.xz

3# 使用tar 解压缩命令将上面的压缩文件解压缩

$ tar -xvf control.tar.gz

方法二:通过dpkg-deb命令来提取deb软件包内容

命令格式如下:

dpkg-deb -xv {deb软件包} {提取到目的路径}

执行下面的命令:

$  dpkg-deb -xv wget_1.17.1-1ubuntu1.2_amd64.deb ./test

命令输出如下:

./
 ./usr/
 ./usr/share/
 ./usr/share/doc/
 ./usr/share/doc/wget/
 ./usr/share/doc/wget/NEWS.gz
 ./usr/share/doc/wget/MAILING-LIST
 ./usr/share/doc/wget/changelog.Debian.gz
 ./usr/share/doc/wget/AUTHORS
 ./usr/share/doc/wget/copyright
 ./usr/share/doc/wget/README
 ./usr/share/info/
 ./usr/share/info/wget.info.gz
 ./usr/share/man/
 ./usr/share/man/man1/
 ./usr/share/man/man1/wget.1.gz
 ./usr/bin/
 ./usr/bin/wget
 ./etc/
 ./etc/wgetrc

只查看deb软件包内容不做提取操作
执行下面的命令:

Dpkg  -c {deb软件包}
$ dpkg -c   wget_1.17.1-1ubuntu1.2_amd64.deb

命令输出如下:

drwxr-xr-x root/root         0 2017-03-08 21:56 ./
 drwxr-xr-x root/root         0 2017-03-08 21:56 ./usr/
 drwxr-xr-x root/root         0 2017-03-08 21:56 ./usr/share/
 drwxr-xr-x root/root         0 2017-03-08 21:56 ./usr/share/doc/
 drwxr-xr-x root/root         0 2017-03-08 21:56 ./usr/share/doc/wget/
 -rw-r--r-- root/root     13445 2015-12-12 01:29 ./usr/share/doc/wget/NEWS.gz
 -rw-r--r-- root/root      1957 2015-11-30 22:07 ./usr/share/doc/wget/MAILING-LIST
 -rw-r--r-- root/root      1427 2017-03-08 21:56 ./usr/share/doc/wget/changelog.Debian.gz
 -rw-r--r-- root/root      2182 2015-11-30 22:07 ./usr/share/doc/wget/AUTHORS
 -rw-r--r-- root/root      1420 2012-04-10 01:48 ./usr/share/doc/wget/copyright
 -rw-r--r-- root/root      4064 2015-11-30 22:07 ./usr/share/doc/wget/README
 drwxr-xr-x root/root         0 2017-03-08 21:56 ./usr/share/info/
 -rw-r--r-- root/root     69543 2017-03-08 21:56 ./usr/share/info/wget.info.gz
 drwxr-xr-x root/root         0 2017-03-08 21:56 ./usr/share/man/
 drwxr-xr-x root/root         0 2017-03-08 21:56 ./usr/share/man/man1/
 -rw-r--r-- root/root     34040 2017-03-08 21:56 ./usr/share/man/man1/wget.1.gz
 drwxr-xr-x root/root         0 2017-03-08 21:56 ./usr/bin/
 -rwxr-xr-x root/root    474656 2017-03-08 21:56 ./usr/bin/wget
 drwxr-xr-x root/root         0 2017-03-08 21:56 ./etc/
 -rw-r--r-- root/root      4942 2017-03-08 21:56 ./etc/wgetrc