Какой пакет предоставляет определенный файл конфигурации?

В большинстве случаев, когда файл существует в вашей системе, и вы получаете сообщение об ошибке, в котором говорится, что он не найден, это означает, что ОС не находит файл в вашей $PATHпеременной среды.

Самый простой способ заставить вашу ОС найти gunicorn— это поместить gunicornпод /usr/local/bin, что находится в пути по умолчанию.

Добавление его местоположения к вашему пути будет учитываться только вашим активным сеансом, как только вы его закроете, он исчезнет, ​​если только вы не поместите его в файл /etc/environmentи не перезагрузитесь.

Вы также можете настроить сервисную среду:

  • Создайте каталог под/etc/systemd/system/<service_name>.service.d
  • Создайте файл во вновь созданном каталоге и настройте среду службы, как показано ниже:

    $ vim /etc/systemd/system/<service_name>.service.d/file.conf
    
    [Service]
    Environment="PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/path_to_directory_containing_gunicorn
    

    Esc:wq

Примечание. :Поскольку добавленный нами файл не является сценарием оболочки, он не поддерживает раскрытие переменных

запись PATH=$PATH :/path _к _каталогу _, содержащему _gunicorn НЕ БУДЕТ РАБОТАТЬ, как ожидалось

  • перезагрузить конфигурацию блоков

    $ systemctl daemon-reload
    
6
31.07.2020, 14:29
2 ответа

dpkg -Sнайдет только те файлы конфигурации, которые поставляются непосредственно в пакетах, а не те, которые создаются сценариями сопровождающего (или другими инструментами ). Для последнего нет общего решения, но лучше всего поискать ссылки на файл в /var/lib/dpkg/info. В данном случае:

$ grep -rl /etc/samba/smb.conf /var/lib/dpkg/info
/var/lib/dpkg/info/samba-common.config
/var/lib/dpkg/info/samba-common.postinst
/var/lib/dpkg/info/samba-common.postrm
/var/lib/dpkg/info/samba-common.templates

Это предполагает, что файл управляется samba-common; чтение файла postinstподтвердит это.

10
18.03.2021, 23:16

Ответ Стивена Китта, вероятно, лучший, но если вы не можете его найти, вы также можете попробовать etckeeper. Он не установлен по умолчанию в Debian и Ubuntu, но он есть в репозиториях, поэтому простой apt install etckeeperдолжен это сделать.

Etckeeper помещает ваш /etcпод (контроль версий git ). Одна из вещей, которую он делает, это автоматическая фиксация каждый раз, когда вы устанавливаете/обновляете пакет.

Теперь вы можете использовать cd /etc && sudo git blame somefile, чтобы узнать, когда он был скорректирован, и найти эту дату в/var/log/dpkg*

Это большая работа, но она должна работать, когда dpkg -Sне находит ее.

6
18.03.2021, 23:16

Теги

Похожие вопросы