确定 apt-get install 的目标位置?

确定 apt-get install 的目标位置?

对于某些应用程序,使用“which”命令可以很容易地找到应用程序的安装位置。但是,有些应用程序(例如 Tomcat)有点超出我的定位能力。

我要求可以应用于任何 apt-get install 的特定方法来定位二进制文​​件、库和支持文件的安装位置。

出现这个问题的原因是我安装了 Tomcat7,但似乎找不到它,而且我有一个要执行的自定义列表。

答案1

您可以运行该命令dpkg -L package列出软件包中的所有文件。例如,dpkg -L ubuntu-minimal只会列出几个与打包相关的小文件,因为它只是一个依赖于其他软件包的空元包。

dpkg -L tomcat7

可能就是你想要的。

答案2

您可以使用以下命令列出已安装软件包的内容dpkg命令,这是 APT 工具内部调用的低级包操作命令:

dpkg -L tomcat7

您可能希望在输出中搜索;使用grep命令。例如,要查看配置文件(位于 下/etc):

dpkg -L tomcat7 | grep /etc

您要修改的文件可能位于主tomcat7软件包的依赖项中。在软件包及其依赖项中搜索会更加复杂。您正在寻找的文件可能位于某个名为 的软件包中tomcat7-something。显示它们的最简单方法是使用apt-file命令,默认情况下不会安装该命令(使用 进行安装apt-get install apt-file)。

apt-file list tomcat7

apt-file列出 Ubuntu 中所有软件包的文件名(根据您启用的软件包源),无论它们是否已安装。您还可以使用它来搜索文件:

$ apt-file search RequestInfoExample.java
tomcat7-examples: /usr/share/tomcat7-examples/examples/WEB-INF/classes/RequestInfoExample.java

答案3

我通常会这样做:

  • 启动 Synaptic(您需要先安装它)

  • 找到我感兴趣的包

  • 右键单击,选择属性

  • 查看已安装文件列表

答案4

我看到很多回复都正确地指出“dpkg -L”是列出已安装软件包内容的命令。但是,他们都没有回答另一个问题,为什么“which”命令会列出某些软件包的空内容?答案是:“which”仅显示可执行文件的位置,而不是软件包的所有内容。如果软件包不包含任何可执行文件,则“which”显示为空。例如,openssl 软件包为各种加密操作提供了同名的可执行文件。而 libssl-dev 软件包包含开发库,而不是任何可执行文件。

相关内容