TypicalPackagingErrors/FHS

Материал из ALT Linux Wiki
Freesource-logo.png Blue Glass Arrow.svg MediaWiki logo.png
Эта страница была перемещена с freesource.info.
Эта страница наверняка требует чистки и улучшения — смело правьте разметку и ссылки.
Просьба по окончанию убрать этот шаблон со страницы.


Filesystem Hierarchy Standard

При упаковке продуктов, рассчитанных на установку "кустом", бывает необходимо разложить одно поддерево (которое предназначалось для лежания под /usr/local или /opt) на несколько обретающихся в /usr, /var, /etc. Порой при этом приходится корректировать и привязку к подобным каталогам в configure-скриптах и в штатных конфигурационных файлах.

Вот попалось информативное письмо на примере Sedna; схожая ситуация с Sympa и, насколько понимаю, с Mozilla (вообще "да их тут тысячи" :). Остаётся добавить, что в пакете fhs есть документ Filesystem Hierarchy Standard -- не чрезмерно объёмное, но полезное пакаджеру чтиво. Ну и сослаться на ALT Packaging Policy.

Date: Tue, 3 May 2005 21:29:44 +0400
From: Sergey Vlasov <vsu@>
To: sisyphus@
Subject: Re: [sisyphus] sedna package

[...]

> 2. Сейчас Седна устанавливается в /usr/local/sedna. Там есть каталог bin
> с бинарными файлами. Естественно, путь туда не прописан и Седну можно
> запускать либо указывая полный путь, либо необходимо
> добавить/usr/local/sedna/bin в PATH.  Не очень красиво, что уж там
> говорить, но может нормально для такого приложения (не команда ls
> все-таки)? Или стоит создать линки для бинарников в /usr/local/bin?  Или
> что-то еще?

rpm-пакет вообще не должен писать что-либо в /usr/local - этот каталог
зарезервирован для программ, установленных без использования менеджера
пакетов.  Программы из rpm-пакетов ставятся в /usr.

Кроме того, имена исполняемых файлов sedna вступают в конфликт с другими
пакетами:

/usr/bin/cdb    tinycdb
/usr/bin/sm     inn
trn - в Сизифе нет, но была такая читалка новостей: http://trn.sf.net/
smsd - можно наступить на http://freshmeat.net/projects/smsd/

Обычно в подобных случаях в начало приписывают название проекта.

> 3. Для работы Седны необходима установленная переменная SEDNA_HOME. Без
> нее ничего работать не будет. Сейчас ее должен устанавливать
> пользователь. Это нормально или здесь надо что-то делать?

Как я понял, при этом данные хранятся в подкаталогах $SEDNA_HOME.  Это плохо
(в частности, программы при своей работе не должны писать куда-либо
в /usr - соответствующая ФС может быть смонтирована только для чтения).
Данные, изменяемые в процессе работы (в данном случае - файлы баз данных
sedna), должны находиться в /var; файлы конфигурации (настраиваемые
администратором при установке, но не меняющиеся в процессе работы) - в
/etc.