Re: [Th] Upgrade apport - jak rozumieć ten błąd?

Patryk Zawadzki patrys w pld-linux.org
Śro, 9 Kwi 2008, 20:56:35 CEST


2008/4/9 Tomasz Pala <gotar w polanet.pl>:
> On Wed, Apr 09, 2008 at 18:00:52 +0200, Patryk Zawadzki wrote:
>
>  > >  Żeby uzupełnić - to jest zarzut także do Ac. W zasadzie nic, co korzysta
>  > >  z webapps, nie mogę normalnie zaktualizować, bo robi swoje czary-mary na
>  > >  moich plikach i z mojego punktu widzenia - psuje je.
>  >
>  > Powinno tworzyć tylko symlinki. Jak psuje?
>
>  Ostatni upgrade phpPgAdmina usunął mi link
>
>  /etc/httpd/httpd.conf/99_phpPgAdmin.conf
>
>  O ile był on tworzony w %post oryginalnego pakietu i jego usunięcie
>  można w ten sposób tłumaczyć, to jednak nie należał do pakietu, nie był
>  oznaczany żadnymi flagami (%ghost %config %verify itp.) i w gruncie
>  rzeczy mógłby być dowolnym linkiem do jakiegoś alternatywnego pliku
>  konfiguracyjnego - w ten sposób do webapps trafi jakiś tam obcy plik
>  /etc/phpPgAdmin/apache-phpPgAdmin.conf.rpmsave, a ja nie będę wiedział,
>  co powinno być zlinkowane - krótko mówiąc tu powinno być sprawdzenie,
>  czy kasowany link wskazuje tam, gdzie był zakładany starym pakietem.
>
>  Po drugie: konstrukcje typu poniższego zamieniłbym w ten sposób:
>
>  if [ -f /etc/phpPgAdmin/apache-phpPgAdmin.conf.rpmsave ]; then
>         if [ -d /etc/apache/webapps.d ]; then
>                 cp -f /etc/webapps/phpPgAdmin/apache.conf{,.rpmnew}
>  -               cp -f /etc/phpPgAdmin/apache-phpPgAdmin.conf.rpmsave /etc/webapps/phpPgAdmin/apache.conf
>  +               mv -f /etc/phpPgAdmin/apache-phpPgAdmin.conf.rpmsave /etc/webapps/phpPgAdmin/apache.conf
>         fi
>
>         if [ -d /etc/httpd/webapps.d ]; then
>                 cp -f /etc/webapps/phpPgAdmin/httpd.conf{,.rpmnew}
>  -               cp -f /etc/phpPgAdmin/apache-phpPgAdmin.conf.rpmsave /etc/webapps/phpPgAdmin/httpd.conf
>  +               mv -f /etc/phpPgAdmin/apache-phpPgAdmin.conf.rpmsave /etc/webapps/phpPgAdmin/httpd.conf
>         fi
>  -       rm -f /etc/phpPgAdmin/apache-phpPgAdmin.conf.rpmsave
>  fi
>
>  zagrożenia - w przypadku, gdy ktoś nie będzie miał
>  /etc/{apache,httpd}/webapps.d (bo sytuacja wymusiła na nim nodepsa, bo
>  rpm czy poldek zgłupiał z kolejnością, bo akurat sobie przenosił
>  katalog, bo cały katalog z konfiguracją apacha ktoś ma podlinkowany), to
>  nie będzie miał ani kopii, ani oryginału.

Przekazałem glenowi.

>  To był katalog, który został zastąpiony plikiem. Inny sposób jest -
>  naprawienie rpma, żeby obsługiwał takie sytuacje bez odwoływania się do
>  rm -rf. I zauważcie - w tym przypadku wystarcza, aby nie używać opcji
>  -r, w myśl zasady, że lepiej przerwać wykonywanie transakcji rpma, niż
>  usunąć czyjeś pliki - bo skoro pozostało COŚ w katalogu, COŚ nienależące
>  do pakietu, to musi mieć innego właściciela.

rpm nie potrafi tylko zastępować symlinków plikami/katalogami. Wczoraj
potwierdził to jeff. Taki %pre w dodatku nic nie zrobi, bo
jakiekolwiek operacje problematyczne dla rpm trzeba rozwiązać w
%pretrans. Zmiana do cofnięcia.

-- 
Patryk Zawadzki
PLD Linux Distribution


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