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 ;]

Related Posts: