如何通过命令行找出 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:package
从deb
文件安装
命令行
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
这两个命令只对已安装的包起作用。