Zarządzanie pakietami – pinning i automatyczne ściąganie updatów
Jedną z “wad” (lub zalet, zależy jak na to patrzeć) Debiana jest to że w wersje stabilne wydawane są raczej rzadko, przez co większośc userków na desktopie używa wersji testing. I wszystko byłoby ok (testing jest w miarę stabilna), gdyby nie to że jednak fajnie byłoby miec parę paczek jak FF z “bleeding edge”. Przez długi czas po prostu dodawałem repo unstable do sources.list, instalowałem z niego co trzeba, potem komentowałem linijkę z repo unstable żeby nie instalowac reszty systemu z niego. Aż wreszcie nauczyłem robić się tzw. “apt pinning”.
Co to jest pinning? W skrócie polega on na powiedzeniu APT z których rep “preferujemy” nasze pakiety, a potem według tych reguł APT będzie brało odpowiednią wersję z repo. Czyli np. na serwerze możemy ustalić że stable ma priorytet, ale “gdy trzeba” (np. chcemy mieć najnowszą wersję lighttpd który wymaga innego liba z testing) apt może wziąć paczkę z innego drzewa. Albo na desktopie możemy chcieć dać priorytet testing, potem stable, a na końcu unstable, tak że normalnie będziemy mieli pakiety głównie z testing i stable a unstable tylko gdy każemy APT je instalować. Ale do rzeczy. Edytujemy /etc/apt/preferences (prawd. nie będzie istniał):
Package: * Pin: release a=stable Pin-Priority: 650 Package: * Pin: release a=testing Pin-Priority: 700 Package: * Pin: release a=unstable Pin-Priority: 600 Package: iceweasel Pin: release a=unstable Pin-Priority: 900
Pin priority powinien być w zakresie 500-1000, powyżej tysiąca oznacza “jeżeli tylko możliwe ściągnij to w tej wersji”, czyli gdy np ręcznie zainstalowałbyś paczkę z testing a stable miałoby priorytet 1100, to po daniu upgrade system zdegradowałby Twoją paczkę do stable (więcej w man apt_preferences).
Jak widać u mnie domyślnie ciągnie paczki z testing -> stable -> unstable, oprócz firefoxa/iceweasel który jest brany z unstable. Podobnie można sobie ustalić że chcemy np. na serwerze mieć wszystkie paczki z stable ale nmapa z unstable. Thats it, mam nadzieję że komuś się przyda;]
Żeby do tego mieć w tle ściągnane listy paczek i samych pakietów (po paru tyg potrafi się uzbierać całkiem sporo do update) http://devrandom.pl/2009/01/automatyczne-sciaganie-updatow-w-debianie/ tutaj ;]