У вас есть бесконечные варианты, но лучший способ зависит от нескольких вещей. Во-первых, это пользовательский файл конфигурации или глобальный для всех пользователей?
Если это конкретный пользователь, вы можете, например, сохранить его в файле ~/.myprogram/config.file и проверить программу там. Как услуга для ваших пользователей, вам решать, что делать, если она не найдена - возможно, скопируйте конфигурацию по умолчанию там из другого места или создайте по умолчанию или используйте жестко заданные параметры по умолчанию или покажите мастер настройки , или просто терпит неудачу. Это полностью зависит от вас.
Если это глобально, традиционное место для его размещения в Linux находится в/etc, например. /etc/config.file или /etc/myprogram/config.file. См. Linux File System Structure. Обычно у вас всегда есть/etc в Linux. Обработка ситуации, когда файл не существует, такой же, как и выше, - нет «правильного» способа справиться с этим, он основан исключительно на том, как удобно вы хотите сделать это для пользователя.
То, что я обычно делаю для глобальных конфигурационных файлов, помещается в/etc/wherever при установке, по умолчанию программа загружает файл конфигурации из/etc/wherever, но также дает возможность командной строки переопределять файл конфигурации (особенно полезно для тестирования или в других ситуациях).
Что я обычно делаю для обработки отсутствующих файлов конфигурации, полностью зависит от приложения. Обычно у меня либо есть жестко закодированные значения по умолчанию (если это подходит), либо просто выходят из строя и направляют пользователя к какой-либо документации, описывающей конфигурационный файл (который я считаю адекватным в ситуациях, когда мой установщик устанавливает файл конфигурации).
Надеюсь, что это поможет.
+1 для «опции командной строки» - что-то я пропустил в своем ответе. –
Собственно не забывайте переменные среды. Для тестирования, установки образца, перемещаемой установки и т. Д. Вы не можете бить переменные среды. Чтобы поддерживать воспроизводимые сборки, мы имеем Git repo, содержащее большое количество программного обеспечения 3rdparty, которое нам нужно, и потому, что любой данный пользователь может создать свое местное рабочее пространство git в любом месте, нам нужны вещи, которые можно переместить. Если программное обеспечение поддерживает переменные среды, чтобы указать, где находится конфигурация, вы можете написать небольшую оболочку оболочки оболочки вокруг нее, которая соответствующим образом устанавливает переменную среды, а затем вызывает реальное приложение. – MadScientist