Czy zdarzyło się wam coś takiego, że chcecie zainstalować dany program w Archu z AUR, a autor nie poprawił wersji, md5sum, czy nie dodał znacznika do kompilacji??

Tak, jest to czasami denerwujące, że pojawia się błąd: suma kontrolna nie jest właściwa.
Ostatnio dość często mi się to zdarzało przy aktualizacji google-chrome-dev.

I tu pojawia się rozwiązanie 🙂
Nie trzeba już anulować instalację danego programu z powodu błędnej sumy. Wystarczy poznać jej wartość i wkopiować do edytowanego pliku PKGBUILD.

Jak to wygląda?
Yaourt pobiera nam dany plik, który jest oznaczony w PKGBUILD. Edytujemy PKGBUILD, wiedząc że jest nowa wersja danego programu. W miejsce pkgver= wpisujemy właściwą wersję programu i teraz zapisujemy plik i uruchamiamy procedurę instalacji, która nie może zostać ukończona, ponieważ suma kontrolna się nie zgadza. NIE ANULUJEMY INSTALACJI…!! Otwieramy nową kartę w terminalu i przechodzimy do katalogu, gdzie dany plik został pobrany (używając terminala), czyli: /tmp/yaourt-tmp-root/… („…” – oznacza katalog który rozpoczyna się od aur- np. aur-google-chrome-dev) w tym właśnie katalogu znajdziemy plik, który mamy zamiar zainstalować. Teraz będąc już we wnętrzu katalogu o nazwie programu i z początkiem aur-… wydajemy polecenie: md5sum nazwa pliku, który został pobrany, a który ma niewłaściwą sumę kontrolną. Po otrzymaniu sumy, przechodzimy do poprzedniej karty w terminalu i naciskamy że chcemy restartować/ponowić instalację danego programu. Teraz przechodzimy ponownie do edycji PKGBUILD i w wyznaczone miejsce md5sums=('suma kontrolna') wklejamy właściwą sumę kontrolną, nic więcej nie zmieniając. Zapisujemy edycję i potwierdzamy chęć instalacji programu, teraz po sprawdzeniu przez yaourt i całą procedurę instalacyjną, że wszystko się zgadza, zostanie zainstalowana wersja, która odpowiada rzeczywistości.

Co ta procedura zmiany wersji i nadaniu nowej sumy kontrolnej daje?
Daje bardzo wiele: po pierwsze nie musimy pobierać ponownie dużych plików, nie musimy męczyć się szukaniem rozwiązania na nasze problemy, nie musimy skazywać się na czekanie opiekuna paczki, że łaskawie zmieni wersję na nowszą. Ponieważ sami edytujemy plik i sami możemy ominąć potrzebę czkania.

Jak pokazałem, procedura instalacji w Archu z AUR jest kierowana przez plik PKGBUILD – gdzie dany plik, po zmianie wersji zostanie pobrany. Ale yaourt nie kończy definitywnie instalacji, dając nam szansę na powtórzenie procedury. A tym samym otrzymujemy szansę na nadanie już pobranemu plikowi sumy kontrolnej i ponowne instalowanie, które odbywa się już właściwe – bez błędu.

A wszystko przez to, że to co pobiera program instalacyjny, w momencie kiedy nie anulowaliśmy całkowicie instalacji znajduje się on na dysku. W momencie całkowitego anulowania instalacji, plik jest kasowany z dysku.

Warto wspomnieć, że odnośnie programów instalowanych przy użyciu AUR, ale przy pomocy git, svn, dane pliki nie są kasowane. Nawet jeśli kasujemy dany program z dysku, katalog z plikami do kompilacji zajmują nam miejsce na dysku. A to miejsce znajduje się w: /var/abs/local/yaourtbuild i jeśli wiecie, że danego programu już nie macie na dysku i nie nie potrzebujecie plików do kompilacji danego programu – warto po prostu skasować niepotrzebnie zajmujące (czasami duże ilości powierzchni miejsca dysku) katalogi.

Takie radzenie sobie ze starymi wersjami w AUR, gdzie nikt nie ma nad nimi władzy lub oznaczone zostały one jako wersje nieaktualne sprawia, że sami możemy sobie poradzić z problemem starego programu czy błędu instalacji. Chyba że błąd wynika od twórców danego programu, a nie procedury instalacyjnej 🙂 na to już nie mamy wpływy.

Odnośnie zbędnych katalogów z plikami do kompilacji programów. Może to nam zaoszczędzić trochę miejsca, a przy okazji dokonamy czyszczenia tego, co i tak nie jest nam potrzebne.

Reklamy

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Log Out / Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Log Out / Zmień )

Facebook photo

Komentujesz korzystając z konta Facebook. Log Out / Zmień )

Google+ photo

Komentujesz korzystając z konta Google+. Log Out / Zmień )

Connecting to %s