Возможный дубликат:
Как мне найти пакет, который предоставляет файл?
Когда вы вводите команду в терминале в Ubuntu, которую вы не установили, но которая может быть предоставлена пакетом, Ubuntu предложит установить пакет.
Как мне сделать наоборот? Как мне узнать, какой пакет предоставил команду, которую я набираю в терминале?
dpkg -S / usr / bin / termit
возвращает
termit: /usr/bin/termit
apt-file find / usr / bin / termit
возвращает
termit: /usr/bin/termit
Где termit
- эмулятор терминала, предоставляемый пакетом termit
.
Если вы используете / usr / bin / ls (вы можете найти абсолютные пути к исполняемым файлам с помощью команды which
), вы можете узнать, какой пакет предоставляется при запуске:
dpkg -S /usr/bin/ls
В качестве альтернативы, запуск
dpkg -S ls
будет искать файлы с именем ls
(или некоторыми другими подобными эвристиками) во всех установленных пакетах и выдаст вам их список в формате PACKAGE: /path/to/file
.
Если у вас установлено и настроено apt-file
, вы можете выполнить:
apt-file find <filename>
Это также удобно, когда вы ищете команду, которую вы еще не установили, например, если вы работаете с инструкциями в Интернете, которые используют команду, которой у вас нет.
Если вы хотите запрашивать только те пакеты, которые установлены, вы можете использовать:
dpkg -S <pattern>
E.g. для файла, который установлен:
% apt-file find /usr/bin/oodraw
openoffice.org-draw: /usr/bin/oodraw
% dpkg -S oodraw
openoffice.org-draw: /usr/share/man/man1/oodraw.1.gz
openoffice.org-draw: /usr/bin/oodraw
и для файла, который не установлен:
% dpkg -S /usr/bin/python3.1
dpkg: /usr/bin/python3.1 not found.
% apt-file find /usr/bin/python3.1
python3.1-dbg: /usr/bin/python3.1-dbg
python3.1-dbg: /usr/bin/python3.1-dbg-config
python3.1-dbg: /usr/lib/debug/usr/bin/python3.1
python3.1-dbg: /usr/lib/debug/usr/bin/python3.1-dbg-gdb.py
python3.1-dbg: /usr/lib/debug/usr/bin/python3.1-gdb.py
python3.1-dev: /usr/bin/python3.1-config
python3.1-minimal: /usr/bin/python3.1