find在Ubuntu上安装的东西

我试图find某人已经安装了一个软件包,我不能。 除了在整个文件系统上运行grep之外,是否有一种很好的方法来查找?

我正在运行Ubuntu,并正在寻找名为Virtuoso的三重数据库的安装。

谢谢,Alex

所有其他的答案给予处理包安装。 没有root级别访问,用户可以安装软件的地方很less:

  • 〜(他们的主目录)
  • / tmp(临时目录,包可能会在下次重启时消失。)
  • / var / tmp(备用临时目录,更有可能在重新启动后存活)
  • / var / lock(可公开写入)
  • 他们可以写的任何其他目录(在标准configuration上都没有)。

安装不使用软件包pipe理器的软件包的正常位置包括:

  • 在/ usr /本地
  • / var / local(可变组件)
  • /select

用于查找可写目录的命令(对于组用户中的用户)。

  sudo find / -type d -perm -02
 sudo find / -type d -perm -020 -group users
 sudo find / -type d -perm -0200 -user somebody 

用户可能属于多个组。 每个组都需要检查。

 whereis Virtuoso 

或者,如果二进制文件被称为别的东西:

 whereis name-of-binary 

或者,如果软件不在通常的位置(/ bin,/ sbin,/ usr / bin等)

 which name-of-binary 

它是使用aptdpkg安装的吗? 如果是这样,您可以使用dpkg -l |grep <name>来查找软件包和dpkg -L <package name>以find它安装文件的位置。

如果没有使用软件包pipe理系统进行安装,请首先查看/opt/usr/local ,如果失败,请使用find / -iname <what you are searching>search整个文件系统。

如果你安装apt或dkpg

 dpkg -L virtuoso 

会显示所有安装的文件的位置。

不要忘记locate(1)命令。 如果设置了这个, updatedb每晚在你的机器上运行并创build所有文件的索引。 然后例如

 $ locate myprogram 

会给你包含我的程序(文件名path)在系统上的每个文件。

如果您知道二进制文件的确切名称,则可以使用正则expression式匹配find它,例如:

 $ locate --regexp="myprogram$" 

将列出您的系统上以myprogram结尾的所有文件。

两个警告:

  1. 许多系统默认closuresupdatedbclosures。
  2. 这个指数一般每天重build一次,所以总是有点过时。

在深入查找软件包之前, locate可能是了解特定文件在系统上的位置的好方法。