Должны ли мы использовать абсолютные или относительные пути для имен файлов в файлах конфигурации? - PullRequest
1 голос
/ 31 января 2012

Я пишу набор программ на c ++, которые я хочу развернуть на многих машинах и распространить среди других разработчиков для тестирования. Как указать пути к файлам в файлах конфигурации и как указать расположение файлов конфигурации в заданиях cron, командной строке, примере API и т. Д.?

Я имею в виду, должен ли я использовать ROOT_DIR для своего приложения и всегда указывать пути к файлам относительно этого каталога? Что такое стандартная практика?

Могу ли я использовать скрипт конфигурации autoconf, чтобы записать ROOT_DIR в файлы конфигурации моего приложения, или я должен указать файл конфигурации, чтобы найти его местоположение на машине? Спасибо.

Ответы [ 2 ]

0 голосов
/ 31 января 2012
What is the standard practice?

Возможно, вы захотите проверить Стандарт иерархии файловых систем , чтобы уточнить ваши мысли о том, где что-то должно быть установлено.Похоже, что вы, вероятно, хотите установить что-то в /var/lib вместо HOME_DIR, но трудно сказать без подробностей.

0 голосов
/ 31 января 2012

Для Autoconf, я полагаю, вы обычно используете опцию --prefix для установки приложения в нестандартное расположение.По умолчанию используется значение для всей системы.

Вот некоторая документация для Autoconf .

Таким образом, пользователи могут решить, хотят ли они это для всей системы или для конкретного пользователя (иличто-то еще).

Возможно, вы захотите использовать менеджер пакетов, предоставляемый вашей ОС.Например, в Debian вы можете создавать пакеты deb - в других системах по умолчанию используются разные менеджеры пакетов.Это поможет разрешить зависимости вашего приложения.

Например: если вашему приложению требуется версия XY библиотеки Foo, менеджер пакетов может убедиться в этом у ваших пользователей перед установкой вашего пакета.

Вы также можете заглянуть в RPM Package Manager , который существует уже некоторое время.

Короче: нет единого ответа.Общий троп в Linux (:

...