filesystem jeszcze raz i pewien niuans z %{def}attr

Tomasz Kłoczko kloczek w rudy.mif.pg.gda.pl
Nie, 21 Lut 1999, 23:33:38 CET


Właśnie znalazłem błąd o jakim mówiłem przy swoim pierwszysm upgrade na
2.2 pakietami z devel związany z 755 na /tmp. Trzeba nieco inaczej
zaznaczać perm na katalogach. Teraz %files w filesystem wygląda tak:

%files
%defattr(755,root,root,755)
/bin
%attr(-,root,root,700) /boot
/etc
/home
/lib
/mnt
%attr(-,root,root,555) /proc
/sbin
%attr(-,root,root,1777) /tmp
/usr
%dir /var
/var/lib
/var/local
/var/lock
%attr(-,root,root,711) /var/log
/var/run
/var/preserve
/var/spool
/var/tmp

Przy okazji zmieniłem na 700 na /boot. A i jeszcze jeden błąd jaki właśnie
teraz zauważylem .. brak jest /root z także 700 (zaraz dodam).

Może odrobina wytłumaczenia co do natury błędu bo będzie to swego rodzaju
nauka na przyszłość i dobrze żeby wszyscy robiący pakiety zdawali sobie
spawę z pewnych niuansów związanych ze specami. Chodzi o to jak to
się stało, że w poprzedniej wersji filesystem /tmp dostało 755. Otóż tuż
przed poprawką wyglądało to tak:

%files
%defattr(755,root,root,755)
/bin
%attr(700,root,root) /boot
/etc 
/home
/lib
/mnt
%attr(555,root,root) /proc
/sbin
%attr(1777,root,root) /tmp
/usr
%dir /var
/var/lib  
/var/local
/var/lock
%attr(711,root,root) /var/log
/var/run
/var/preserve
/var/spool
/var/tmp

Wszystko co jest w tym pakiecie rejestrowane to są katalogi. W zasadzie po
%files mogłoby być od razy w związku z tym %defattr(-,root,root,755).
W jeszcze wcześniejszej wersji były wpisy typu:

%attr(711,root,root) %dir /var/log

Co _też_ powodowało, że var/log otrzymywał 755. W tym wypadku decydujący
jest czwarty parametr %defattr i o ile nie wymieniało się uprawnień w
konkretnej pozycji podając cztery parametry dla każdego %attr to czwarty
parametr odnoszący się do uprawnień na katalogach był przejmowany z
%defattr.

W sumie jest to niuans i można się spierać co do przejrzystości logiki
działania powyższego ale tak to właśnie wygląda, no i jest to tak czy
inaczej daje się jednoznacznie określić wszystko więc dyskutować raczej
nie ma co tylko trzeba się do tego dostosować.

Do Wojtak tylko uwaga żeby szczegółowiej na przyszłość sprawdzał pakiety
jakie robi .. w każdym bąć razie wyszedł właśnie niuans który powoduje, że
do procedury autorskiego testu trzeba by dodać przejrzenie tego co
wyrzuca:

$ rpm -qplv pakiet*rpm

jako po pierwsze. Jako po zerowe można dodać jeszcze coś prosztrzego co
daje się zlekka automatyzować. Otóż kjeżeli ja mam login "kloczek" i
zrobiłem włąsnie pakiet to po jego zrobieniu o ile mieszałem coś w %files
dodaję prosty test:

$ rpm -qplv pakiet*rpm | grep kloczek

Jeżeli gdzieś wyjdą linijki z których wynika, że włąścicielem
pliku/katalogu w pakiewcie jestem ja to coś jest nie tak z tym co jest w
%files i pakiet jest do dalszej poprawki.

kloczek
-- 
-----------------------------------------------------------
*Ludzie nie mają problemów, tylko sobie sami je stwarzają*
-----------------------------------------------------------
Tomasz Kłoczko, sys adm @zie.pg.gda.pl|*e-mail: kloczek w rudy.mif.pg.gda.pl*



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