[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