如何从软件包中获取已安装文件的列表?


401

我想知道在使用软件包管理器在Ubuntu上安装我的应用程序时可以在哪里找到。

我安装了RabbitMQ并运行了locate rabbitmq,结果如下:

/home/anupamg/.m2/repository/com/rabbitmq
/home/anupamg/.m2/repository/com/rabbitmq/amqp-client
/home/anupamg/.m2/repository/com/rabbitmq/amqp-client/1.7.2
/home/anupamg/.m2/repository/com/rabbitmq/amqp-client/1.7.2/_maven.repositories
/home/anupamg/.m2/repository/com/rabbitmq/amqp-client/1.7.2/amqp-client-1.7.2.jar
/home/anupamg/.m2/repository/com/rabbitmq/amqp-client/1.7.2/amqp-client-1.7.2.jar.lastUpdated
/home/anupamg/.m2/repository/com/rabbitmq/amqp-client/1.7.2/amqp-client-1.7.2.jar.sha1
/home/anupamg/.m2/repository/com/rabbitmq/amqp-client/1.7.2/amqp-client-1.7.2.pom
/home/anupamg/.m2/repository/com/rabbitmq/amqp-client/1.7.2/amqp-client-1.7.2.pom.lastUpdated
/home/anupamg/.m2/repository/com/rabbitmq/amqp-client/1.7.2/amqp-client-1.7.2.pom.sha1
/home/anupamg/Downloads/rabbitmq-server-generic-unix-2.4.0.tar.gz

什么应用?有些可以通过命令行访问,有些则可以在应用程序菜单中找到漂亮的图标。更加详细一些。
Ragnar123 2011年

您是否想知道可执行文件和配置文件所在的位置,还是想执行它而不知道如何执行?

好!!!我实际上想知道在Windows中是否安装了应用程序,我可以在ubuntu中的程序文​​件中看到它,在哪里可以找到已安装的应用程序...我刚刚安装了RabbitMq,想知道它在哪里,我需要配置它的运行.sh文件

@ das_weezul:-是的,当我从突触包管理器中单击安装时,我想知道对我的盒子所做的所有事情...我是ubuntu上的新手...所以欢迎任何链接

1
答案之一表明以下内容dpkg-query -c <package_name.deb>您不能对deb文件执行此操作。我怀疑张贴者打算使用dpkg-debparams dpkg-deb -c <filename.deb>列出预期文件相同的海报。
gazhay

Answers:


600

要查看软件包安装到系统上的所有文件,请执行以下操作:

dpkg-query -L <package_name>

要查看文件,将安装.deb文件

dpkg-deb -c <package_name.deb>

要查看未安装的软件包中包含的文件,请执行一次(如果尚未安装apt-file

sudo apt-get install apt-file
sudo apt-file update

然后

apt-file list <package_name>

看到这个问题更多


2
正如gazhay所说,dpkg-query -c foo.deb失败了。但是dpkg-deb -c foo.deb有效。
卡米尔·古德塞内

4
更新apt-file是痛苦。
sjsam's

1
请注意,dpkg -L此处未考虑可能已被排除的文件--path-exclude=。即使未安装它们,它也会列出它们。
史蒂夫(Steve)

24

@drysdam dpkg -L <package_name>可能是最适合您当前问题的方法,但是您可能想阅读Filesystem Hierarchy Standard,它描述了文件系统中不同类型文件的位置。

不是确定的;它仅是“大多数”事物的描述性描述。

对于Ubuntu更具体的是《Ubuntu服务器指南》,它将详细介绍所有内容。(许多其他指南掩盖了太多的细节,但这应该更好。)


13

如果只需要一个已安装的软件包,则可以找到软件包名称

$ apt-cache search rabbitmq
...
librabbitmq-dev
...

然后使用dpkg --listfiles

$ dpkg --listfiles librabbitmq-dev
/usr/lib/x86-64/librabbit... 
. . . 

可能取决于版本,但我不得不使用dpkg -L <package>
JimB

dpkg -L仅适用于已安装的软件包。
kenorb

11

@Gilles给出的答案非常有用(实际上,随着时间的推移,答案得到了改善)。

此外,对于那些不想安装任何辅助软件包的人(例如apt-file),我有一些建议:

  • 转到http://packages.ubuntu.com/ ;
  • 转到“ 搜索软件包目录”会话;
  • 在“ 关键字”字段中插入您的软件包名称,然后选择“ 仅显示完全匹配”
  • 选择您的发行版,然后单击“ 搜索”按钮。
  • 在下一个屏幕中选择所需的软件包;
  • 在页面末尾,单击架构名称旁边的文件列表链接;
  • 下一页将显示软件包的文件列表。

例如:http : //packages.ubuntu.com/trusty/amd64/multipath-tools/filelist


1
curl -s https://packages.ubuntu.com/$(lsb_release -cs)/$(dpkg --print-architecture)/<<PACKAGE NAME>>/filelist | sed '1,/pfilelist/d;/<\/div>/,$d' :-)
Nicolas Melay

0

这是对尚未安装的软件包执行此操作的一种方法。只需为要获取其文件列表的软件包更改以下“ autoconf”即可:

mkdir tmp
cd tmp
apt-get download autoconf
ar x *.deb
tar tf data.*
cd ..
rm -r tmp

0

使用synaptic-package-manager

在此处输入图片说明

假设我们要查找autotools-dev软件包的文件,请在“快速过滤器”下输入autotools-dev进行查找。autotools-dev软件包会自动出现。通过单击将其选中,然后按“属性”。在出现的对话框中,选择“已安装文件”标签。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.