如何找出 package.deb 中安装了什么?

如何找出 package.deb 中安装了什么?

如何通过命令行找出 package.deb 中安装了什么?我想弄清楚是否有某个守护进程或服务与软件包一起安装。我可以使用什么命令来找出答案?

答案1

您可以使用dpkg查看 deb 文件

dpkg --info /path/file.deb

获取一般信息,以及

dpkg --contents /path/file.deb

获取列出的文件(程序,库,文档等):

编辑:您还可以使用以下命令查看 deb 文件emacs

emacs /path/file.deb

这样就可以进入 deb 文件的不同部分

我正在开发的示例ppa:mkusb/unstable。以下命令

emacs dus_22.0.7-1ubuntu1_all.deb

带你到餐桌旁

   Mode    User/Group   Size        Date       Filename
--------- -----/-----  ----- ---------------- ----------------
rw-r--r--     0/0          4 2022-06-03 17:03 debian-binary
rw-r--r--     0/0       1420 2022-06-03 17:03 control.tar.xz
rw-r--r--     0/0      58968 2022-06-03 17:03 data.tar.xz
--------- -----/-----  ----- ---------------- ----------------

您可以进入控制 tarball 来查看相同的内容dpkg --info,也可以进入数据 tarball 来查看相同的内容,dpkg --contents此外,如果可以读取每个文件(大多数 dus 文件都是 bash shell 脚本),还可以非常方便地输入每个文件。

编辑 2:packagedeb文件安装

命令行

sudo dpkg -i package.deb

应该安装 package并使它的程序像其他程序一样可用(如果这是您愿意的话)。

答案2

您不需要查看 deb 文件来寻找程序(下面示例中的 gpsd),而是可以运行:

apt-file search bin/gpsd

并获取包含守护进程的软件包列表。

首先你需要安装 apt-file

sudo apt-get install apt-file

然后更新

sudo apt-file update

这样,即使在未安装的 deb 上,搜索也会起作用。

答案3

列出属于某个包的文件:

dpkg -L packagename

很快你也会需要反向命令,如何查看文件属于哪个包(如果有的话):

dpkg -S /my/path/somefile

这两个命令只对已安装的包起作用。

相关内容