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

Jakub Bogusz qboosh w pld-linux.org
Śro, 9 Kwi 2008, 21:35:53 CEST


On Wed, Apr 09, 2008 at 08:56:35PM +0200, Patryk Zawadzki wrote:
> 2008/4/9 Tomasz Pala <gotar w polanet.pl>:
> > On Wed, Apr 09, 2008 at 18:00:52 +0200, Patryk Zawadzki wrote:
[...]
> >  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.

Ani katalogu plikiem. Nawet jeśli odinstalowanie starej wersji pakietu
usunęłoby cały katalog wraz z zawartością.

Prosty test - uaktualnienie z pakietu z:
%dir /usr/lib/testtestdir
%attr(755,root,root) /usr/lib/testtestdir/testbin

do pakietu z plikiem:
%attr(755,root,root) /usr/lib/testtestdir

Preparing...                ########################################### [100%]
Repackaging...
   1:tst2                   ########################################### [100%]
Upgrading...
   1:tst2                   ########################################### [100%]
error: unpacking of archive failed on file /usr/lib/testtestdir: cpio:
rename failed - Is a directory

> Taki %pre w dodatku nic nie zrobi, bo
> jakiekolwiek operacje problematyczne dla rpm trzeba rozwiązać w
> %pretrans. Zmiana do cofnięcia.

Fakt, powinno być %pretrans, żeby rpm nie miał niespodzianki przy
usuwaniu starej wersji pakietu.

Jeżeli macie prosty sposób na zachowanie obcych plików (które BTW
nie były w tym miejscu przewidywane) przy takim przejściu, to proszę
bardzo.


-- 
Jakub Bogusz    http://qboosh.pl/


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