[devel] Установка *.schemes

Yury Aliaev =?iso-8859-1?q?mutab0r_=CE=C1_rambler=2Eru?=
Пн Мар 3 12:06:25 MSK 2008


Alexey Rusakov scripsit:
> On Sat, 01 Mar 2008 13:59:19 +0300
> Yury Aliaev wrote:
> 
> 
>>Я занимаюсь исправлением пакета gnucash. У него есть некоторое 
>>количество файлов типа /etc/gconf/schemas/*gnucash*.schemas, которые не 
>>устанавливаются корректным образом. В его багзилле предлагают после 
>>установки программы от рута сказать "for ff in 
>>/usr/share/gconf/schemas/*gnucash* ; do gconftool-2
>>--config-source=xml::/etc/gconf/gconf.xml.defaults --install-schema-file 
>>$ff ;
>>done
>>pkill gconfd"
>>
>>(И, действительно, после этого всё начинает работать)
> 
> Всё правильно, но у нас это забрано в скрипты-макросы.
> 
> 
>>Это можно, конечно, вынести, в %post секцию спека, чтобы эти действия 
>>выполнялись при установке пакета. Но вроде как у нас достаточно добавить 
>>в спек следующее:
>>
>>%post
>>%gconf2_install %name
>>
>>%preun
>>if [ $1 = 0 ]; then
>>%gconf2_uninstall %name
>>fi
> 
> Почти правда. С одной оговоркой, ниже.
> 
> 
>>Так вот, если сделать так, то при установке пакета вылезает следующее:
>>
>>[root на testing i586]#  rpm -ivh gnucash-2.2.3-alt2.i586.rpm 
>>libgnucash-2.2.3-alt2.i586.rpm
>>Preparing... 
>>#################################################################################
>>libgnucash 
>>#################################################################################
>>gnucash 
>>#################################################################################
>>I/O warning : failed to load external entity 
>>"/etc/gconf/schemas/gnucash.schemas"
>>Failed to open `/etc/gconf/schemas/gnucash.schemas': No such file or 
>>directory
>>error: execution of %post scriptlet from gnucash-2.2.3-alt2 failed, exit 
>>status 1
>>
>>Вопрос: что должен содержать файл /etc/gconf/schemas/gnucash.schemas 
>>(которого действительно нет),
> 
> Если кратко и лень читать то, что ниже - посмотрите, как на самом деле
> называется файл со схемой
> 
> 
>>или всё же следует поступать так, как написано в багзилле гнукэша?
> 
> Не следует.
> Я немного с другой стороны пойду, но зато укажу точный алгоритм, по
> которому нужно идти в таких случаях. Даже странно, на fs.i его до сих пор
> нет... Я хотел это вообще в какие-нибудь хитрые макросы завернуть, которые
> бы сами генерили нужные %post/%postun скрипты, но в итоге дело кончилось
> ничем...
> Короче говоря:
> 1. Собираем пакет и находим все файлы вида
> /etc/gconf/schemas/<название cхемы>.schemas.
> 2. (опционально) Раскладываем эти файлы по подпакетам так, как нам
> нравится.
> 3. Для каждого из этих файлов пишем (в подходящем подпакете, если он в
> подпакете) упоминавшуюся связку:
> 
> %post
> %gconf2_install <название схемы>
> 
> %preun
> if [ $1 = 0 ]; then
> %gconf2_uninstall <название схемы>
> fi

Спасибо за подробное разъясснение! Правда возникает следующий вопрос: в 
gnucash'е пара десятков схем, и в связи с этим есть ли возможность не 
перечислять все файлы, а просто подсунуть конструкцию типа *gnucash* ? 
Тем более, что я не уверен, что от версии к версии набор схем не меняется.



Подробная информация о списке рассылки Devel