pakiety z uzytkownikami

Jakub Bogusz qboosh w pld.org.pl
Sob, 10 Maj 2003, 14:33:28 CEST


On Sat, May 10, 2003 at 01:19:15PM +0200, Andrzej Krzysztofowicz wrote:
> Wg mnie w przykladowym ices.spec nie wystarczy dac
> Requires(pre):  user-icecast
> 
> Probowales
> 
> rpm -U ices user-icecast 
> rpm -e user-icecast
> ?
> 
> Na rpm-ie 4.0.2 zadziala...

I na nowszych też, bo Requires(pre) tak ma działać.

Czy te zmiany we wszystkich specach od razu nie są za szybko?
Rozwiązanie jest niezbyt wygodne przy instalowaniu pakietów, jeśli nie
mamy akurat poldka lub łatwego dostępu do pakietów...
No i niepotrzebne już pakiety z użytkownikami trzeba usuwać ręcznie.

Mam trochę inny pomysł - zarządzanie użytkownikami związanymi
z pakietami jest bliskie zarządzaniu pakietami - więc i tym mógłby się
zajmować zarządca pakietów. Nie musi to być w kodzie rpm-a - mogą być
dołączone skrypty (np. /usr/lib/rpm/{add,del}-{user,group}) plus gdzieś
przechowywane dane (podkatalog w /var/lib/rpm?).

Chyba wystarczyłoby, żeby te dane były licznikami użycia (plus ew. lista
pakietów do podglądu). Skrypt add-* by zwiększał licznik użycia,
a w przypadku zmiany na >=1 dodatkowo użytkownika tworzył, jeśli jeszcze
nie istnieje. Skrypt del-* by zmniejszał licznik użycia, a w przypadku
zmiany na <=0 usuwał, jeśli jeszcze istnieje (w przypadku <0 ustawiał
licznik na 0; to już jest pewna tolerancja na błędy).

Powiedzmy, że mamy pakiety P1 i P2 (z wzajemnymi obsoletes... albo
i bez, dotychczas w takich przypadkach nie było userdel w obu pakietach),
oba tworzące i usuwające użytkownika U.

Niech będzie, że mają Obsoletes. Wtedy:
Instalacja P1 - w %pre jest tworzony U, licznik użycia = 1.
Instalacja P2 - w %pre nie jest tworzony U (bo jest), ale licznik użycia
jest zwiększany do 2. Automagicznie odinstalowuje się P1 - ale jego
%postun wykonuje się po %pre P2, więc licznik użycia jest zmniejszany do
1 - i użytkownik nie jest usuwany.

W przypadku kiedy pakiety nie mają Obsoletes - niezależnie od kolejności
instalowania i odinstalowywania, użytkownik będzie istniał do czasu
usunięcia wszystkich używających go pakietów.

Pewien problem byłby z pakietami już zainstalowanymi bez liczników -
ale w takich przypadkach zachowanie będzie takie jak teraz...
Dodatkowo można dołączyć skrypt inicjujący/naprawiający liczniki na
podstawie `rpm -qa`.


Może tak lepiej?


-- 
Jakub Bogusz    http://cyber.cs.net.pl/~qboosh/



Więcej informacji o liście dyskusyjnej pld-devel-pl