Поиск, где что-то установлено в 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
в вашей системе.
Два предостережения:
- Многие системы поставляются с отключенной функцией updatedb по умолчанию.
- Индекс обычно перестраивается один раз в день, поэтому он всегда будет несколько устаревшим.
locate
может быть хорошим способом понять, где в системе может находиться конкретный файл, прежде чем приступить к поиску пакета.