Что предоставляет / etc / exports и как мне это узнать?

У меня есть две виртуальные машины Debian, которые были созданы из той же netinstall iso, но, возможно, установлены разные пакеты. Один из них имеет файл /etc/exports для монтирования nfs, а другой – нет. Я бы хотел, чтобы они оба имели этот файл, установленный менеджером пакетов.

Я пришел из мира Fedora и был ли я все еще в нем, я бы yum whatprovides /etc/exports . Мне сказали, что на территории Debian я должен выполнить apt-file search . Однако я не получаю никаких результатов:

 apt-file update apt-file search /etc/exports 

Что мне здесь не хватает?

Когда вы ищете файл, принадлежащий пакету, установленному на вашем компьютере, вы можете использовать dpkg -S (эквивалент dpkg-query -S ):

 dpkg -S /etc/exports 

В этом случае, хотя он ничего не найдет, потому что /etc/exports создается скриптом-сопровождающим (и этот тип файла явно не обрабатывается dpkg-query или, если на то пошло, apt-file ).

Поэтому, если apt-file и dkpg -S не могут найти файл, вы можете попробовать просмотреть скрипты-сопровождающие:

 grep /etc/exports /var/lib/dpkg/info/* 

Это должно соответствовать сценариям поддерживающего nfs-kernel-server ; это пакет, который создает /etc/exports , по крайней мере, на моих серверах NFS.

В Debian, /etc/exports не входит в какой-либо пакет. Существует пример файла конфигурации:

 /usr/share/nfs-kernel-server/conffiles/etc.exports 

Вы можете скопировать его в / etc / exports и отредактировать его в соответствии с вашими требованиями (возможно, может быть установлена ​​некоторая установка после установки, которая копирует ее в /etc ). Этот файл предоставляется как часть пакета nfs-kernel-server :

 $ apt-file search /usr/share/nfs-kernel-server/conffiles/etc.exports nfs-kernel-server: /usr/share/nfs-kernel-server/conffiles/etc.exports 

Без apt-file и если пакет, который вы ищете, не установлен (тогда dpkg -S – ваш друг), вы можете посмотреть на веб-сайт Debian для файла:

https://packages.debian.org/search?searchon=contents&keywords=/etc/exports&mode=path&suite=unstable&arch=any

Хотя может быть проще использовать веб-форму (у меня есть функция оболочки, которая расширяется до этого URL-адреса в $BROWSER для меня):

Что касается /etc/exports – как показывают вышеприведенные сайты, он не содержится непосредственно в каком-либо пакете. Однако, если у вас уже установлен пакет, вы можете grep для него в сценариях поддержки:

 fgrep -r etc/exports /var/lib/dpkg/info 

Результат содержит /var/lib/dpkg/info/nfs-kernel-server.postinst , что указывает на наш, теперь известный, виновник для файла.

В противном случае вы можете искать похожие файлы на веб-сайте. Этот поиск для «пакетов, содержащих файлы, чьи имена содержат ключевое слово» имеет слишком много результатов, но поиск путей, заканчивающихся ключевым словом, имеет только 14 результатов, один из которых – /usr/share/nfs-kernel-server/conffiles/etc.exports nfs-kernel-server [not kfreebsd-amd64, kfreebsd-i386] , который мы ищем.

AIUI нет веб-поиска по всем сценариям поддержки всех пакетов (пока?).