2014-05-16 3 views
2

Я на OS-X (Mavericks, если это имеет значение), и я создаю сценарий bash, который будет использовать ресурсы из папки под названием «шаблоны». Я пытаюсь выяснить, куда я должен поместить (папка шаблонов). Я хотел бы сделать так, чтобы пользователю не нужно было изменять свой путь при их установке, поэтому я бы предпочел не делать это так, как это делает команда терминала mysql (она живет в папке в /usr/local/mysql/bin). Я действительно хочу, чтобы их можно было разместить в usr/bin, но я не знаю, является ли это «вежливым», чтобы помещать туда папки (я их там не вижу).Где я должен поместить папку шаблона для сценария bash?

Сейчас я склоняюсь к написанию сценариев в usr/bin и имеющих шаблоны в usr/lib. Так ли это обычно делается, или есть другой способ? Я хотел бы следовать конвенции, предполагая, что она есть. Я также хотел бы, чтобы это было применимо к как можно большему числу платформ Unix (я хотел бы поместить в каталог, где живут сценарии bash, что согласуется на как можно большем числе Unix-платформ). Благодарю.

+1

Являются ли ресурсы в папке 'templates' исполняемыми? Если нет, то почему вы ожидаете, что пользователю потребуется изменить '$ PATH'? –

+1

http: //www.pathname.com/fhs /, но да, ваша основная идея о bin для двоичных файлов и lib для файлов поддержки правильная. (Однако вы должны находиться в '/ usr/local' для локальных установок.) – tripleee

+0

@MichaelKropat Нет, но мне нужно будет изменить путь, чтобы исполняемые сценарии выполнялись, если они были сохранены в/usr/local/myScriptFolder/bin, или/usr/local/myScriptFolder, вместе с папкой шаблона, правильно? – Didericis

ответ

2

Если вы следуете за Filesystem Hierarchy Standard (FHS), ваш исполняемый файл отправляется в /usr/local/bin, а файлы шаблонов только для чтения идут в /usr/local/share/YOURAPP/. Цитирую the FHS:

/usr/local/share

Требования к содержанию этого каталога такие же, как /usr/share. [...]

and:

/usr/share иерархия для всех только для чтения архитектуры независимых файлов данных.

(Выделено)

Если системный администратор предназначена для настройки файлов шаблонов вступили в силу в масштабах всей системы, то они бы просто пойти в /etc/YOURAPP/templates (или что-то в этом роде).

Если файлы шаблонов настроены на основе каждого пользователя, а затем модифицированные копии шаблонов (скопированные из /usr/local/share/YOURAPP/templates) должны быть сохранены в директории пользователя, под $HOME/.config/YOURAPP/templates или что-то в этом роде (благодаря technosaurus для коррекции).


Вы упомянули, что хотите установить шаблоны в каталог вместе с исполняемым файлом. Это не стандартный подход к UNIX, по крайней мере, по FHS. Если вы действительно хотите пройти этот маршрут, существует своеобразное соглашение об установке вашего приложения с /opt/YOURAPP/, используя любую организацию, которую вы хотите в этой папке.

Во всех случаях нецелесообразно устанавливать исполняемые файлы непосредственно на /usr/bin, так как этот каталог находится под исключительным контролем ОС/дистрибутива. Если вы хотите установить там, принятый способ сделать это - создать пакет для менеджера пакетов для каждой поддерживаемой ОС/дистрибутива.

+0

Если я хочу, чтобы пользователь мог редактировать файлы шаблонов с помощью скриптов, будут ли они по-прежнему работать в/usr/local/share? – Didericis

+1

@Didericis Я обновил ответ. По общему признанию, попытка разбить ваши файлы повсюду в соответствии с FHS - это боль, поэтому для сценариев, которые не получили широкого распространения, я, возможно, не стал бы следовать стандарту письма. –

+1

. Более конкретная информация на http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html оригиналы могут входить в/usr/share, но вы не обязательно хотите, чтобы каждый пользователь мог редактируйте шаблоны для всех (как в/usr/local/share), поэтому сохраненные шаблоны переходят в $ HOME/.config/app_name/template ... – technosaurus

Смежные вопросы