TypicalPackagingErrors/FHS
Материал из ALT Linux Wiki
(Различия между версиями)
Версия 16:04, 28 июля 2008
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.