如何解压缩.deb文件而不在Debian或Ubuntu Linux上打开它

时间:2020-01-09 14:17:07  来源:igfitidea点击:

我下载了.deb Debian文件。
如何提取deb软件包而不在基于Debian或Ubuntu Linux的系统上安装它?
如何列出和提取Debian软件包的内容?

Debian或Ubuntu .deb软件包不过是老式的Unix ar存档格式。

ar命令用于将文件组作为单个存档保存在一起,.deb包括以下三个文件:

  • debian-binary一个文本文件,指示.deb软件包格式的版本。
  • control.tar.gz一个压缩文件,它包含md5sums和用于生成软件包的控制目录。
  • data.tar.xz压缩文件,其中包含要在系统上安装的所有文件。

让我们来看看 如何使用各种命令行选项在Debian/Mint/Ubuntu Linux上列出和提取.deb软件包文件的内容。

步骤1下载.deb软件包

如下使用apt-get命令/apt命令来下载名为nginx * .deb的文件:

$ apt download nginx

或者

$ aptitude download nginx

或者

$ apt-get download nginx

输出示例:

Get:1 http://in.archive.ubuntu.com/ubuntu xenial-updates/main amd64 nginx all 1.10.0-0ubuntu0.16.04.4 [3,498 B]
Fetched 3,498 B in 0s (4,460 B/s)

要列出文件,请使用ls命令:

$ ls *.deb
`nginx_1.10.0-0ubuntu0.16.04.4_all.deb`

步骤2使用ar命令提取.deb软件包

语法为:

ar x {file.deb}

安装ar命令

您可以使用以下apt-get命令/apt命令安装ar命令:

$ sudo apt install binutils

或者

$ sudo apt-get install binutils

要提取nginx_1.10.0-0ubuntu0.16.04.4_all.deb,请运行:

$ ar vx nginx_1.10.0-0ubuntu0.16.04.4_all.deb
$ ls -l

如何提取deb包

从control.tar.gz和data.tar.gz中提取文件

输入以下tar命令:

$ tar xvf control.tar.gz
$ tar data.tar.gz
$ ls -l

所有文件都提取到当前目录中。

dpkg-deb命令

您也可以使用dpkg-deb命令提取.deb文件。
语法为:

$ dpkg-deb -xv {file.deb} {/path/to/where/extract}

要在/tmp /目录中提取htop_2.0.1-1ubuntu1_amd64.deb,请运行:

$ dpkg-deb -xv htop_2.0.1-1ubuntu1_amd64.deb /tmp/

要在当前目录中提取htop_2.0.1-1ubuntu1_amd64.deb,请运行:

$ dpkg-deb -xv htop_2.0.1-1ubuntu1_amd64.deb .

要从Debian软件包中提取文件,请使用dpkg-deb命令

如何在不解压Debian软件包的情况下查看其内容?

语法为:

$ dpkg -c {file.deb}

或者

$ apt-file list {packageName}

例如,要查看名为htop_2.0.1-1ubuntu1_amd64.deb的Debian软件包的内容,请运行:

$ dpkg -c htop_2.0.1-1ubuntu1_amd64.deb

使用dpkg命令查看Debian或Ubuntu Linux .deb软件包的内容

您还可以如下使用apt-file命令

默认情况下未安装apt文件。
因此,请按如下所示安装并使用它:

$ sudo apt-get install apt-file ## install ##
$ sudo apt-file update ## update package cache ##
$ apt-file list htop ## list htop package contents ##

使用apt-file查看debian软件包的内容