2017-02-11 3 views
0

Я написал a game для UNIX-подобных операционных систем. В настоящее время я пишу сценарии установки для этой игры.

Traditionally, игровые двоичные файлы были установлены в $prefix/games, однако некоторые операционные системы, такие как FreeBSD, начали избавляться от каталога games. Каков хороший способ определить, устанавливать ли игровые двоичные файлы в $prefix/games или $prefix/bin, если пользователь явно не указывает?

Мои сценарии установки написаны в общем подмножестве функций, предоставляемых ksh93, bash и оболочкой POSIX. Они должны обращаться к широко доступным утилитам.

Для уточнения: тема этого вопроса не определяет $prefix. Определяется, какие из $prefix/games и $prefix/bin использовать, если пользователь не задает подкаталог явно.

+0

AFAIK,/usr/games по-прежнему остается местом для игр в FreeBSD, но это необязательная установка - не все хотят или нуждаются в ней. Тем не менее, существует предварительный уровень для установки вещей в $ prefix/$ packagename /, например PostgreSQL, входящий в/usr/local/pgsql во FreeBSD. Вы также можете использовать $ prefix/bin для двоичных файлов, $ prefix/lib для библиотек, $ prefix/etc для конфигурации и т. Д., Если ** файлы, которые вы добавляете в систему, записываются в локальную систему управления пакетами **. Программное обеспечение, которое не красиво сочетается с упаковкой, никогда не будет установлено на поддерживаемые мной системы. Период. – ghoti

+0

Кроме того, я боюсь, что это звучит не так, как на тему для SO. Я рекомендую вам обратиться в IRC-каналах для различных операционных систем, которые вы заинтересованы в поддержке. Вполне вероятно, что разные платформы будут иметь разные предпочтения. – ghoti

+0

@ghoti Нет, это не так. Например, на моей Linux-системе nethack устанавливается в '/ usr/games/nethack', тогда как на FreeBSD порт исправлен для установки в'/usr/local/bin/nethack', потому что 'games' отменен. – fuz

ответ

1

В FreeBSD программное обеспечение сторонних разработчиков предназначено для установки в /usr/local. Каталог /usr/games, если он существует, не должен касаться.

В ОС X программные приложения в комплекте и установлены в папку /Applications, но текстовая базовая игра (которая, как я полагаю, есть), вероятно, не имеет смысла. Если вы устанавливаете программное обеспечение с помощью MacPorts, оно имеет тенденцию идти в /opt/local. Если вы устанавливаете программное обеспечение с помощью Brew, оно имеет тенденцию идти до /usr/local, чтобы избежать конфликта с MacPorts. Но «правила» иерархии под /*/local/ отличаются от «правил» иерархии под /Applications.

В большинстве дистрибутивов Linux программное обеспечение может быть установлено в любом месте, если оно не конфликтует с ранее установленным программным обеспечением. Насколько я могу судить, есть рекомендации, но они меньше соответствуют им.

Большая общая черта между ними заключается в том, что в нем задействована система упаковки. Обычно вы можете делать все, что захотите, до тех пор, пока вы отслеживаете, что делаете в упаковочном листе. (См port contents {portname} в MacPorts, pkg info -l {portname} в FreeBSD, dpkg-query -L {pkgname} в APT-систем, rpm -ql {pkgname} в системах ППД на основе и т.д.)

Мой совет будет держать вашу установку, как простой, но как можно более гибким, и пусть локальная система упаковки применяет свои правила о том, куда идти. Ваше программное обеспечение не должно меняться, потому что какая-то операционная система решила, что игры должны жить в другом месте.

Установите свой префикс как-то вроде PREFIX?=/usr/local, чтобы его можно было легко перезаписать прилагаемым скриптом или Makefile. Ознакомьтесь с различными вариантами команды install, чтобы определить, существует ли базовый набор опций, которые являются универсальными в платформах, которые вы собираетесь поддерживать, а если нет, просто скопируйте файлы с cp или включите собственный скрипт install как часть вашего программного обеспечения.

+0

Спасибо за ваш интересный ответ, хотя я не вижу, как он отвечает на мой вопрос. – fuz

+1

То, что он говорит, «не пытайтесь выбрать каталог установки на основе каких-либо критериев - просто укажите свои предпочтения и разрешите его легко перезаписать те, у кого разные предпочтения от вас». – ghoti

+0

Хм, да, точно. И данг, я не ожидал этого. :-( – Graham

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