On Mon, 7 Jun 2004, Arkadiusz Patyk wrote: > Tomasz Trojanowski ([EMAIL PROTECTED]) wrote: > > Dzisiaj na IRCu został ponownie poruszony problem zakładania (i usuwania) > > użytkowników w %pre (i %postun). Już kiedys przerabialiśmy próby > > rozwiązania tego problemu za pomocą pakietów users-* albo triggerami. > > > > Wydaje mi się że istnieje jeszce jedno rozwiązanie. Możemy w filesystemie > > (wstępnie w /var/lib/users) trzymać licznik referencji. I tak na > > przykładzie gdm. > > > > Dotychczas przy zainstalowanym gdm'ie, instalacja xdm'a powoduje usunięcie > > użytkownika xdm, ponieważ skrypt %postun gdm'a jest wykonywany na samym > > końcu. > > > > W przypadku zastosowania licznika referencji. > > > > %pre: > > - jeżeli użytkownik xdm nigdy dotychczas nie istniał w systemie (zatem > > nie ma pliku /var/lib/users/xdm: tworzony jest ten plik, zakładany jest > > użytkownik xdm i w razie powodzenia do /var/lib/users/xdm wpisywana jest > > wartość 1, > > - jeżeli użytkownik xdm istnieje już w systemie wartość z pliku xdm jest > > zwiększana o 1 > > > > %postun > > - wartość z pliku xdm jest zmniejszana o 1 i jeżeli jest równa 0, > > użytkownik jest usuwany > > > > Komentarze? > > Nie podoba mi się bo: > - w kazdym pakiecie musi być zakładanie/usuwanie użytkownika + obsługa > liczników
Teraz też jest (tyle że tylko zakładanie usuwanie), ale można to rozwiązać na dwa sposoby, które mogą być nawet użyte jednocześnie: - osobny pakiet w którym znajdzie się obsługa liczników (chociaż IMO nie będzie to takie obszerne, żeby nie mogło znajdować się w całości w pre i postun) - makra rpma do zakładania użytkowników (twittner już to właściwie przygotował) i w nich zawarte, zakładanie/usuwanie użytkowników oraz obsługa liczników > - potencjalne niebezpieczeństwo popsucia sobie pliku z licznikiem - > trzeba by zrobić jakieś locki itp Znaczy się co ? Zamierzasz *jednocześnie* instalować jakieś pakiety -- w sensie jeden na jednym terminalu, drugi - na innym? RPM na to nie pozwoli. > - nie wiemy który pakiet z zainstalowanych w tym momecie potrzebuje > danego użytkownika Dla wcześniejszego przykładu wystarczy: Provides: user(xdm) > Ja zdecydowanie widziałbym userów w osobnym pakiecie + tylko Requires > w pakietach które je potrzebują. > Z usuwaniem niepotrzebnych userów też nie ma problemu, bo > wystraczy: > > $ rpm -qa | grep user- | xargs rpm -e $ rpm -q --provides | grep user\( | xargs rpm -q --whatprovides | xargs \ rpm -e Co prawda bardziej karkołomne. Ale się da ;) Pozdrawiam -- Tomasz Trojanowski ([EMAIL PROTECTED]) "Between depriving a man of one hour from his life and depriving him of his life there exist only a difference of degree." (FH, Dune Messiah) _______________________________________________________ złota zasada - kto się nie zna, niech się nie wypowiada
