Поиск, где что-то установлено в Ubuntu

Я пытаюсь найти, где кто-то установил программный пакет, и я не могу. Есть ли хороший способ найти это, кроме запуска grep во всей файловой системе?

Я использую Ubuntu и ищу установку базы данных из трех магазинов под названием Virtuoso.

Спасибо Алекс

5 ответов

Решение

Все остальные ответы даны для установки пакетов. Без доступа на уровне root пользователь может установить программное обеспечение в нескольких местах:

  • ~ (Их домашний каталог)
  • / tmp (временный каталог, пакет, вероятно, исчезнет при следующей перезагрузке.)
  • / var / tmp (альтернативный временный каталог. Больше шансов пережить перезагрузку.)
  • / var / lock (Общедоступно для записи.)
  • Любые другие каталоги, которые они могут записать (нет в стандартной конфигурации).

Обычные места для установки пакетов, не использующие менеджер пакетов:

  • / USR / местные
  • /var/local (переменные компоненты)
  • / неавтоматического

Команды, чтобы найти доступные для записи каталоги (для пользователя кто-то в группе пользователей).

sudo find / -type d -perm -02
sudo find / -type d -perm -020 -группировать пользователей
sudo find / -type d -perm -0200 -пользователь

Пользователь может принадлежать нескольким группам. Каждая группа должна быть проверена.

whereis Virtuoso

Или, если двоичный файл называется чем-то другим:

whereis name-of-binary

Или, если программное обеспечение не находится в обычных местах (/bin, /sbin, /usr/bin и т. Д.)

which name-of-binary

Это было установлено с помощью apt или же dpkg? Если это так, вы можете использовать dpkg -l |grep <name> найти пакеты и dpkg -L <package name> чтобы найти, где он установил файлы.

Если он не был установлен с помощью системы управления пакетами, посмотрите на /opt а также /usr/local во-первых, и если это не удается, используйте find / -iname <what you are searching> искать всю файловую систему.

Если вы установили с apt или dkpg

dpkg -L virtuoso

покажет вам местоположение всех установленных файлов.

Не забывайте locate(1) команда. Если это установлено, updatedb работает на вашем компьютере каждую ночь и создает индекс всех файлов. Тогда например

$ locate myprogram

даст вам каждый файл, который содержит myprogram (в имени файла или пути) в системе.

Если вы знаете точное имя двоичного файла, вы можете использовать совпадение с регулярным выражением, чтобы найти его, например:

$ locate --regexp="myprogram$"

перечислит все файлы, которые заканчиваются myprogram в вашей системе.

Два предостережения:

  1. Многие системы поставляются с отключенной функцией updatedb по умолчанию.
  2. Индекс обычно перестраивается один раз в день, поэтому он всегда будет несколько устаревшим.

locate может быть хорошим способом понять, где в системе может находиться конкретный файл, прежде чем приступить к поиску пакета.

Другие вопросы по тегам