[sisyphus] Сумма грабель FAM (Was: Обновление меню Гнома на лету)

Alexey Rusakov =?iso-8859-1?q?ktirf_=CE=C1_altlinux=2Eru?=
Сб Апр 30 04:05:26 MSD 2005


Alexey Rusakov wrote:

>On 29.04.2005 16:30, Michael Shigorin wrote:
>  
>
>>On Thu, Apr 21, 2005 at 04:48:05PM +0400, Alexey Rusakov wrote:
>>    
>>
>>>>>Помнится, в Гноме 2.8 после прокатывания update-menus -n изменения тут 
>>>>>же подхватывались без перезапуска Гнома. В 2.10, которому файлы из 
>>>>>/usr/lib/menus по большому барабану, и который признаёт только 
>>>>>/usr/share/applications, просто подкладывание туда *.desktop не 
>>>>>проходит, и надо перезапускать Гном, что, согласитесь, не удобно. Может 
>>>>>быть, можно как-нибудь дрюкнуть Гнома, чтобы он свежие файлы в 
>>>>>/usr/share/applications влёт подхватил и обновил меню без перезапуска?
>>>>>          
>>>>>
>>>>$ sudo grep disable /etc/xinetd.d/sgi_fam
>>>>      disable         = no
>>>>        
>>>>
>>>Сюда ещё следует добавить, что на машине должен стоять пакет fam.
>>>      
>>>
>>Знатоки, а на wiki забросите? :)
>>    
>>
>Сначала у меня пусть дойдут руки проверить, почему оно даже при наличии 
>запущенного fam не спешит меню обновлять. Заодно грабельку 
>задокументирую, если найду.
>  
>
Грабелька действительно нашлась. Я, видимо, один из немногих оригиналов, 
у которых не стоит portmap, благодаря чему и получил. Сумму грабель 
привожу ниже (на wiki стоит писать, имхо, после обсуждения):

1. gnome-vfs2 зависит лишь от libfam, но не от fam. Понятное дело, без 
fam изменения файлов на лету ловиться не будут. Судя по Гуглу, 
изначально избавление от этой зависимости было связано с желанием 
независимости от portmap, который вроде бы нужен fam'у (почему вроде бы 
- см. пункт 2). Собственно, грабля номер раз состоит в том, что фича с 
подхватыванием изменений заблокирована дважды: во-первых, по 
зависимостям не вытаскивается fam, а во-вторых, в конфиге самого fam по 
умолчанию стоит disable = yes, с очевидными последствиями. Я, конечно, 
понимаю: xinetd, portmap, RPC - но мне кажется, меры безопасности слегка 
преувеличены.

2. Но это оказалось не всё. Судя по Гуглу, отвязать fam от portmap можно 
(ценой ограничения функциональности, как я понял), однако в Debian 
(например) отвязыванием заниматься не стали. Мне неизвестно, способен ли 
наш fam работать без portmap. Но вторая, гораздо менее очевидная грабля, 
состоит в том, что в нашей конфигурации по умолчанию fam без portmap не 
запускается, при этом у fam в зависимостях нет portmap!

Итого, для автоматического подхватывания изменений в GNOME нужно:
1. Проверить, что установлен portmap
2. Проверить, что установлен fam
3. Поставить disable = no в /etc/xinetd.d/sgi_fam
4. Перезапустить xinetd и перевойти в GNOME.

Мне кажется, что два первых пункта излишни. От portmap надо либо 
избавиться, либо прописать его в зависимости. Зависимость gnome-vfs2 на 
fam я бы прописал в любом случае (а то от hal мы, значит, зависим, а от 
гораздо более лёгкого и нестрашного fam...). Параноики могут не включать 
sgi_fam, однако лично мне кажется, что по умолчанию держать fam можно и 
включённым, при этом в /etc/fam.conf установить local_only=true.

P.S. А кстати, если писать на Вики - у нас уже есть страничка про 
подобные неприятности?

-- 
  Alexey "Ktirf" Rusakov



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