Недавно я установил java6 в свой ящик Debian. Я пошел использовать javac и заметил, что он не установлен. В конце концов я понял (после поиска в Интернете), что javac является частью пакета java6-sdk. Это не первый раз, когда я знаю нужную мне команду, но я не знаю, в каком пакете она содержится.
Мой вопрос: есть ли способ в командной строке выяснить, какой файл принадлежит какому пакету (пакетам)? Поэтому, если бы я хотел увидеть, к каким пакетам принадлежит javac, он бы перечислил java6-sdk, java5-sdk, .., поскольку все они содержат javac.
Ты можешь использовать apt-файл искать имя файла для этого. Вы можете просто пойти в Пакеты Debian и выполните поиск в онлайн-версии.
apt-file
это команда, которую вы ищете.
Я знаю, что это не совсем то, что вы ищете, но:
dpkg -L packagename
перечислит все файлы, принадлежащие установленный пакет. (но вы хотите это для неустановленных пакетов)
Я не знаю, как это происходит, но Ubuntu (производный от Debian) предложит следующий пакет:
$ chkrootkit
The program 'chkrootkit' is currently not installed. You can install it by typing:
sudo apt-get install chkrootkit
bash: chkrootkit: command not found
И я часто делал очевидное и набирал имя файла вместе с «Debian» в Google, чтобы найти пакет.
вы также можете посмотреть пакет dlocate. у него есть много полезных опций для перечисления пакетов и файлов внутри пакетов. Первоначально он был написан как гораздо более быстрая версия dpkg -L, dpkg -S и т.д., но с годами приобрел много полезных функций (при этом сохранив скорость :)
ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Я автор и сопровождающий debian dlocate.
Кстати, установите версию dlocate из тестовой или нестабильной. он имеет множество улучшений по сравнению с версией в стабильной версии (в частности, она больше не зависит от местоположения GNU) и по-прежнему отлично работает в стабильной версии (не зависит от каких-либо новых / обновленных библиотек и т. д.).