piątek, 22 lutego 2008

Zepsuty Perl po aktualizacji FC8

Zaktualizowałem dziś system przez wykonanie yum update i przestał działać skrypt do ładowania zdjęć na flickr:


junk '500 Can't locate object method "configure" via package "Net::HTTP"
' before XML element

Pakiet Net::HTTP jest imho częścią Perla jako takiego (wchodzi w skład pakietu libwww-perl). Bliższa inspekcja /var/log/yum ujawniła, że faktycznie Perl został zaktualizowany do wersji 5.8.8-33.fc8, co wskazywało niezbicie źródło problemu. Teraz pozostało tylko odkręcić z powrotem aktualizację do wersji poprzedniej.

Chciałem przywrócić poprzednią wersję ,,porządnie'', ale przeglądają relewantne informacje via Google zorientowałem się że może być z tym problem. Yum nie ma opcji przywracania pakietu w określonej wersji (podobno konkurencyjny apt ma). Istnieje wprawdzie plugin do yuma pn. allowdowngrade (instalowany przez yum install yum-allowdowngrade) tyle, że nie działa, np.:


yum --allow-downgrade localupdate perl-5.8.8-32.fc8.rpm

Status tegoż plugina zresztą jest mocno podejrzany. Zero dokumentacji i/lub śladów (pomyślnego) wykorzystania na stronach google. Ostatecznie użyłem opcji, co do której dokumentacja stwierdza, cyt. zezwala uaktualnianiu na zastąpienie nowszego pakietu starszym:


rpm -Uvh --oldpackage perl-5.8.8-32.fc8.i386.rpm \
perl-libs-5.8.8-32.fc8.i386.rpm perl-ExtUtils-Embed-1.26-32.fc8.i386.rpm \
perl-devel-5.8.8-32.fc8.i386.rpm perl-ExtUtils-MakeMaker-6.30-32.fc8.i386.rpm \
perl-Test-Harness-2.56-32.fc8.i386.rpm perl-Test-Simple-0.62-32.fc8.i386.rpm

Na liście są wszystkie pakiety zależne od perl-5.8.8-32.fc8.i386 zainstalowane podczas ostatniej aktualizacji. Nie wiem czy taki sposób jest w 100% poprawny. Okaże się później. Na forach proponowano też:


yum erase perl

Ale to polecenia chciało usunąć nie tylko Perla ale jeszcze -- w ramach zależności -- pół systemu. Łącznie kilkaset Mb. Nie poszedłem na to:-)

Żeby yum nie usuwał pakietów po instalacji, należy zmienić w pliku /etc/yum.conf


keepcache=1

Ściągnięte pakiety można odnaleźć w katalogu /var/cache/yum/. Zamiast instalować pakiety bezpośrednio poprzez uruchomienie yuma niektórzy radzą używać programu yumdownloader do ściągania plików .rpm a programu rpm do ich instalowania.

Brak komentarzy:

Prześlij komentarz