查找 Ubuntu 上的安装位置

查找 Ubuntu 上的安装位置

我正在尝试查找某人安装软件包的位置,但找不到。除了在整个文件系统上运行 grep 之外,还有其他好方法可以找到它吗?

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

谢谢,亚历克斯

答案1

给出的所有其他答案都处理软件包安装。如果没有 root 级别访问权限,用户可以安装软件的地方很少:

  • ~(他们的主目录)
  • /tmp(临时目录,软件包可能会在下次重启时消失。)
  • /var/tmp(备用临时目录。更有可能在重启后继续存在。)
  • /var/lock(公开可写。)
  • 他们可以写入的任何其他目录(标准配置中没有)。

不使用包管理器安装包的正常位置包括:

  • /usr/本地
  • /var/local(变量组件)
  • /选择

查找可写目录的命令(对于用户组内的某人而言)。

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

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

答案2

whereis Virtuoso

或者,如果二进制文件有其他名称:

whereis name-of-binary

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

which name-of-binary

答案3

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

如果它不是使用包管理系统安装的,请/opt首先查看/usr/local,如果失败,则使用它find / -iname <what you are searching>搜索整个文件系统。

答案4

不要忘记locate(1)命令。如果设置了该命令,则updatedb每晚都会在您的机器上运行并创建所有文件的索引。然后例如

$ locate myprogram

将为您提供包含myprogram(文件名中或者路径)在系统上。

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

$ locate --regexp="myprogram$"

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

两个注意事项:

  1. 许多系统默认将 updatedb 关闭。
  2. 该索引通常每天重建一次,因此它总是会有些过时。

locate在深入寻找包之前,可以很好地了解系统中特定文件的位置。

相关内容