|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Victor Wagner 2:5020/400 03 Mar 2005 10:13:56 To : George Shuklin Subject : Re: положение файлов -------------------------------------------------------------------------------- George Shuklin <George.Shuklin@f1377.n5030.z2.fidonet.org> wrote: GS> А, это ты All! Вот что я тебе сказать хотел... GS> Подскажите, где должны лежать файлы: GS> 1) конфигурации GS> 2) кэша GS> 3) Исполняемый файл GS> 4) файлы документации к программе GS> P.S. Утилита user-level для работы с видео/аудио, консольная. fhs почитать тебе уже рекомендовали. К сожалению, в fhs написано не всё. Он же рассчитан на авторов дистрибутивов, которые уже собаку съели в программировании под *nix и призван выработать единую схему, собирающую все лучшие из выработавшихся за 35 лет истории Unix традиций. Поэтому по пунктам: 1. Файлы конфигурации В многопользовательских системах, к которым относятся все *nix, и теоретически (хотя об этом не думают большая часть авторов 3rd-party софта) относится семейство Window NT, принято иметь два файла конфигурации (вернее, два источника конфигурационой информации, в windows это обычно две ветки реестра) для user-level програм. а) site-wide, т.е. общая для всех пользователей б) per-user - т.е. индивидуальная для каждого пользователя. site-wide лежит в системной директории конфигурации, которая традиционно называется /etc и доступен для редактирования только администратору системы. Более менее работоспособная заготовка такого файла обычно создается при установке пакета. (см ниже про sysconfdir в autoconf) per-user лежит в домашней директории пользователя, и обычно называется .<имя-софтины>rc. Он создается либо пользователем вручную (например, путем копирования системного и изменения необходимых настроек) либо софтиной, если она достаточно интерактивная, чтобы уметь сохранять настройки. 2. Файлы кэша опять таки могут быть общими для системы, тогда им место в /var/cache, либо индивидуальными для пользователя, тогда им место в ${HOME}/.<имя софтины>/cache. (а индивидальный конфигурационный файл тоже может переехать внутрь ${HOME}/.<имя-софтины>. Тогда ему уже не нужна точка в начале - признак скрытого файла) Впрочем, в последнем случае рекомендуется предусмотреть возможность явного указания расположения кэша в конфигурационном файле. Причем так, чтобы его можно было прописать в системном конфиге, и для каждого юзера сгенерился бы правильный путь. Дело в том, что ${HOME} может быть смонтирован по сети, а кэшироваться на сетевой диск - медленно. Поэтому надо сделать возможность указать там что-нибудь вроде /var/tmp/<софтина>-cache-$username 3. Исполняемый файл бывает обычно в /bin, /usr/bin и /usr/local/bin. Т.е. общая схема ${prefix}/bin. Эти каталоги у пользователя и так в PATH есть. В /bin твоя софтина скорее всего никогда не попадет, там место только тому, что необходимо при загрузке системы, до того как смогли смонтировать /usr. В /usr/bin она попадет только в том случае, если её включат в соответствующий дистрибутив и соберут в пакет. Hо не стоит заранее зарекаться, что этого не случиться. В /usr/local/bin она должна по умолчанию попадать при установке make install. 4. Файлы документации. Для начала, должны быть man-страницы. Они располагаются в ${prefix}/share/man/<секция>. где секция это man1 для программ, man5 для форматов файлов (в частности конфигов), man7 для всего, что не вписывается в остальные категории. В man man описано и все остальное. man <софтина> настолько естественное действие, что ни в коем случае нельзя оставлять софтину без хотя бы краткой man страницы. Там может быть только перечислены основые опции (чтобы опытный пользователь данной софтины, не имевший с ней дела пару месяцев, вспомнил что к чему) и дана ссылка на основную документацию в info, pdf или html. Hо эта страница должна быть. Если есть документация в info, она ставится в ${prefix}/share/info и прописывается в сообветствующий dir-файл. Документация в нестандартных форматах (pdf, html, etc) складывается в ${prefix}/share/doc/<софтина>. И еще. Есть такая штука как autoconf. Её рекомендуется освоить и использовать. В частности она позволяет тому, кто собирает софтину явно задать prefix, и явно задать sysconfdir. Рекомендуется почитать info autoconf и создать хотя бы минимальный configure скрипт. Особенно, если программа работает не только под Linux. Если у тебя есть уже написанный makefile, то совершенно необязательно при этом связываться с automake. Хотя можно. Если программа требует всяких не слишком стандартных библиотек, которые должны быть установлены в системе независимо от неё (из дистрибутива или портов во FreeBSD) - пригодится. -- Прежде, чем стиснуть зубы, показывайте язык. --- С.Е. Лец --- ifmail v.2.15dev5.3 * Origin: Free Net of Leninsky,45 (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/151787785efcd.html, оценка из 5, голосов 10
|