我试图find某人已经安装了一个软件包,我不能。 除了在整个文件系统上运行grep之外,是否有一种很好的方法来查找?
我正在运行Ubuntu,并正在寻找名为Virtuoso的三重数据库的安装。
谢谢,Alex
所有其他的答案给予处理包安装。 没有root级别访问,用户可以安装软件的地方很less:
安装不使用软件包pipe理器的软件包的正常位置包括:
用于查找可写目录的命令(对于组用户中的用户)。
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
它是使用apt或dpkg安装的吗? 如果是这样,您可以使用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结尾的所有文件。
两个警告:
在深入查找软件包之前, locate可能是了解特定文件在系统上的位置的好方法。