сценарий Linux, стандартные местоположения каталога

Я пытаюсь записать сценарий удара, чтобы сделать задачу, я сделал вполне прилично до сих пор и имею его работающий до степени, но я хочу настроить его так, это распространяемо другим людям и будет открывать его как открытый исходный код, таким образом, я хочу начать делать вещи "стандартный" путь. К сожалению, я не все это уверенное, каков стандартный путь.

Идеально я хочу ссылку на подробно ресурс онлайн, который обсуждает это и окружающие темы подробно, но я испытываю затруднения при нахождении ключевых слов, которые определят местоположение этого на Google.

В начале моего сценария я установил набор глобальных переменных, которые хранят имена директоров, к которым он будет получать доступ, это означает, что я могу изменить dir быстро, но это программирует ярлыки, не пользовательские ярлыки, я не могу сказать пользователям, что они должны играть с этим материалом. Кроме того, я должен для настроек отдельных пользователей не быть уничтожен на каждом обновлении.

Вопросы:

Название папки настроек: ~/.foo/-это хорошо и хорошо, но как я сохраняю свою рабочую копию и свою копию разработки отдельными? настроить ссылку в источнике dev версии?

Если моя программа должна поддержать и обновить библиотеку данных (gps tracklog данные в этом случае), где этот каталог должен быть? пользователь должен будет получить доступ к некоторым из этих данных, но это главным образом для внутреннего пользования. Я лично работаю в cygwin, и мне нравится сохранять эти данные по отдельному диску, таким образом, путь является странным, я подозреваю, что многие пользователи могли найти это. для значения по умолчанию однако я думаю ~/gpsdata/-это было бы нормально, или я должен трудно кодировать систему, которые спрашивают пользователя на первом показе, куда поместить его и хранят это в папке настроек? что бы ни случилось я иду, ot должны сохранить ссылку каталога в файле в папке настроек.

Для программы нужны данные "ящик входящих сообщений", который является папкой, что пользователь может вывести файлы, затем запустить скрипт для обработки этих файлов. Я думал ~/gpsdata/in/?? хотя всегда будет опция добавить файл или папку к командной строке для использования этого также (это обработало файлы все перечисленные местоположения, включая "ящик входящих сообщений"),

Где должен, сценарий сам идет? это уже достаточно умно, из которого это может создать весь, его - вспомогательные файлы / файлы настроек (после того как я выясняю "корректный" каталог), если выполнено с "./нечто - установка", я мог бы пихнуть его в/usr/bin/или / мусорном ведре или ~/.foo/bin (и добавить, что к пути), что нормально?

Я должен сохранить данные для входа в систему для веб-сервиса, с которым это соединится (использующий завихрение-u, если это будет иметь значение), план по включению установки, посредством чего это просит имя пользователя и пароль у каждого выполнения, но это в настоящее время хранит его плоский текст в файле в ~/.foo/-я знаю, это не хорошо. Веб-сервис (osm.org) действительно поддерживает OAuth, но я понятия не имею, как заставить завихрение использовать его - то, чтобы заставлять завихрение говорить с сервисом во-первых было взломом. Существует ли простой способ сделать действительно основное шифрование на файле как это для удерживания идиотов, вооруженных блокнотом?

Извините за список вопросов я полагаю, что они достаточно тесно связаны для единственного сообщения. Это - весь материал, что поножовщина в, но хотела бы разъяснение/подтверждение.

1
задан Thingomy 9 May 2010 в 19:06
поделиться

2 ответа

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

  • $ HOME / .foo / используется для пользовательских настроек - он скрыт
  • $ PREFIX / etc / foo / для системных- широкая конфигурация
  • $ PREFIX / foo / bin / предназначена для общесистемных двоичных файлов
    • символьных ссылок из $ PREFIX / foo / bin добавлены в $ PREFIX / bin / для простоты использования
  • $ PREFIX / foo / var / - это место, где будут размещаться данные переменной - здесь ваши входные катушки и файлы журналов будут жить

$ PREFIX по умолчанию должен быть / opt / foo , хотя почти все, кажется, по умолчанию помещают что-то в / usr / local (спасибо GNU !). Если кто-то хочет установить пакет в свой домашний каталог, замените $ HOME на $ PREFIX . По крайней мере, так я понимаю, как все это должно работать.

1
ответ дан 3 September 2019 в 00:42
поделиться

Имя папки настроек: ~/.foo/ -- это хорошо, но как мне разделить рабочую копию и копию для разработки?

По умолчанию ~/.foo, и опция (например, --config-directory), которую можно использовать, чтобы отменить значение по умолчанию во время разработки.

Если моей программе нужно поддерживать и обновлять библиотеку данных (в данном случае данные gps-треклогов), где должен находиться этот каталог?

Если ваш скрипт запущен под обычной учетной записью пользователя, он должен находиться где-то в его домашнем каталоге; в других местах у вас не будет прав на запись. Возможно, ~/.foo/tracklog или что-то в этом роде? Опять же, добавьте опцию командной строки, а также опцию в конфигурационном файле, чтобы отменить это.

Я не поклонник вашего ~/gpsdata по умолчанию; я не хочу, чтобы мой домашний каталог был загроможден всевозможными каталогами, которые программы создали без моего согласия. Такое часто встречается в Windows, и это очень раздражает. (Сохраненные игры в "Моих документах"? Убирайтесь отсюда!)

Программе нужна "папка" данных, в которую пользователь может сбрасывать файлы, а затем запускать скрипт для обработки этих файлов. Я думал ~/gpsdata/in/ ?

Как сказано выше, я бы предпочел ~/.foo/inbox. Также есть опция командной строки и опция конфигурационного файла, чтобы изменить это.

Но действительно ли вам нужна папка входящих сообщений? Если пользователю нужно запустить скрипт вручную над некоторыми файлами, возможно, лучше просто принять эти имена файлов в командной строке. Они могли бы просто обрабатываться где угодно, без необходимости перемещать их в "волшебное" место.

Куда должен помещаться сам скрипт?

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

Есть ли простой способ сделать действительно базовое шифрование такого файла, чтобы отпугнуть идиотов, вооруженных блокнотом?

Да, есть. Но лучше этого не делать, потому что это создает ложное чувство безопасности. Без мастер-пароля или чего-то подобного безопасное хранение невозможно! Pidgin, например, явно хранит пароли открытым текстом, чтобы пользователи не делали ложных предположений о том, что их пароли хранятся "безопасно". Поэтому лучше всего просто хранить их открытым текстом, жаловаться, если файл доступен для чтения во всем мире, и добавить в руководство четкое примечание, чтобы предупредить пользователя о том, что происходит.

Итог: не пытайтесь изобретать колесо. Были тысячи скриптов и программ, которые сталкивались с теми же проблемами; большинство из них в итоге приняли те же соглашения, и на то есть веские причины. Посмотрите, что они делают, и подражайте им, вместо того чтобы изобретать колесо.

1
ответ дан 3 September 2019 в 00:42
поделиться
Другие вопросы по тегам:

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