Я использую SSH. Когда установил все нужные пакеты для работы с помощью sudo apt-get install ssh, то у меня в системе появился файл /etc/ssh/sshd_config. Странно, что несмотря на то, что он установился с использованием dpkg, этот файл сам не принадлежит ни одному пакету. Я в командной строке ввожу
text
dpkg -S /etc/ssh/sshd_config
а в ответ получаю dpkg-query: no path found matching pattern /etc/ssh/sshd_config. Как узнать принадлежность этого файла пакету?
dpkg -l | --list шаблон имени пакета ...
Показывает пакеты, соответствующие данному шаблону.
dpkg -s | --status имя пакета ...
Сообщает о состоянии указанного пакета.
dpkg -L | --listfiles имя пакета ...
Показывает файлы, установленные в системе из пакета с указанным именем.
dpkg -S | --search шаблон имени файла ...
Ищет в установленных пакетах имя файла по заданному шаблону.
dpkg -p | --print-avail I <имя пакета>
Выводит детальную информацию о пакете, которую извлекает
из файла /var/lib/dpkg/available.
Цитата из мана на моём компе (на сайте перевод некорректный, помоему):
text
-S, --search filename-search-pattern...
Search for a filename from installed packages.
dpkg -L /etc/ssh/sshd_config - синтаксис неправильный. После -L должно стоять имя пакета, чтобы определить все входящие в него файлы. А имя пакета я как раз и хочу определить.
Это не баг, а фича. Шаблону *ss* может соответствовать kiss, pass, passing. Т.е., все слова, что содержат ss. А если текущий каталог - /etc/ssh, то будут подставляться имена файлов... Естественно, пакетов с именем, например, ssh_config нету, вот и получается ошибка.
все файлы, которые создаются пакетом на стадии postinst не регистрируется системой... дебиан не гента... тут много-чего бесхозного...
этот конкретно вринадлежит ssh-серверу. пакет в бубунте не знаю, как называется... искать по ключевым словам: open/ssh/server/daemon/sshd
Полагаю, файл принадлежит пакету openssh-server, но просто не зафиксирован в базе данных dpkg. Потому что в пакете openssh-server есть файл /usr/share/doc/openssh-client/examples/sshd_config, в точности совпадающий с ним.
Ну, не знаю, по идее, пути всех устанавливаемых файлов должны записываться в базу данных пакетного менеджера, иначе смысла в нем нет. У меня в Slackware есть два способа определить принадлежность файла пакету:
1) по старинке:
postinst это обычный тупой скрипт, который работает прямо на корне без всяких враперов и может сделать всё что угодно, хоть rm -rf /, и ни кто этого не запишет...
[added]
не досмотрел... тоже не должно работать т.к. в самом пакете этого файла нет... он просто создаётся при установке...