(A cikk megírását ez a fórum topic inspirálta)
Sokaknak szívfájdalma, hogy a Debian kicsit konzervatívabban kezeli az új csomagok befogadását a ``stabil'' terjesztésbe, mint más ``pengeél'' disztribútorok. Vannak akik szeretnék a stabil terjesztést követni - mondjuk a biztonsági frissítések miatt -, de eközben szeretnének egyes csomagokból a legújabbakat használni. Vajon lehetséges ez? Mi erre a legjobb megoldás?
A megoldás az, hogy miközben a ``stable'' terjesztést futtatjuk (jelen esetben a Debian 3.0r2 ``woody''-t), közben felhasználjuk a ``testing'' (most a ``sarge'') és az örök fejlesztői disztribúció az unstable ( ``sid'' - still in development) csomagjait, forrásait is.
Miért is jó ez? Azért, mert a ``stable - woody'' terjesztést követi a biztonsági csapat, és rendszeresen javítják a felbukkanó bugokat. A ``testing - sarge'' és az ``unstable - sid'' nem rendelkezik biztonsági frissítésekkel. Emellett lehetnek olyan kevésbé kritikus csomagok, amelyekből viszont szeretnénk a legújabbat használni. Ilyen lehet egy grafikus program (Gimp), egy levelező program, vagy egy bőngésző, stb. Ezeknél a programoknál nem túl gyakori a biztonsági hiba, így kisebb kockázattal lehet belőlük a nem követett verziókat használni, mint mondjuk egy ``bind''-ből. Ezeknél a programoknál jöhet szóba, hogy a ``testing''-ből vagy az ``unstable''-ből emeljünk be csomagokat.
Az apt fel van készítve arra, hogy több disztribúció csomagjait kezelje párhuzamosan. Lássuk hogyan:sources.list
Az első lépés a /etc/apt/sources.list módosítása. A ``stable'' disztribúciót követőknek ebben jelenleg a ``woody''-s forrás sorok vannak. Emellé kell felvenni a ``testing'' és az ``unstable'' sorokat. Egy egyszerű sources.list így fest:
#Stable
deb http://ftp.us.debian.org/debian stable main non-free contrib
deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
#Testing
deb http://ftp.us.debian.org/debian testing main non-free contrib
deb http://non-us.debian.org/debian-non-US testing/non-US main contrib non-free
#Unstable
deb http://ftp.us.debian.org/debian unstable main non-free contrib
deb http://non-us.debian.org/debian-non-US unstable/non-US main contrib non-free
Ezen sorok mellé természetesen fel lehet venni az egyéb extra forrás sorokat is, mint például a security.debian.org forrásait.
preferences
A következő lépés az /etc/apt/preferences file létrehozása/szerkesztése. Ebben a fileban adhatjuk meg a pinning stuffokat. Alapértelmezés szerint mindig a magasabb verziójú csomagok ``győznek'' a telepítéskor. Ezt viszont felülbírálhatjuk:
Egy egyszerű preferences file így fest:
Package: *
Pin: release a=stable
Pin-Priority: 700
Package: *
Pin: release a=testing
Pin-Priority: 650
Package: *
Pin: release a=unstable
Pin-Priority: 600
Megfigyelhető, hogy a ``stable'' a legmagasabb prioritású, a telepítéskor ez a preferáltabb a ``testing'' és az ``unstable''-lel szemben.
apt-get update
Ha ez megvan, jöhet a frissítés. Ezzel újabb repository-kat adhatunk az apt listájához.
E: Dynamic MMap ran out of room
A használat során az alábbihoz hasonló hibaüzenet köszönhet vissza:
E: Dynamic MMap ran out of room
E: Error occured while processing sqlrelay-sqlite (NewPackage)
E: Problem with MergeList /var/lib/apt/lists/ftp.us.debian.org_debian_dists_woody_contrib_binary-i386_Packages
E: The package lists or status file could not be parsed or opened.
Ez azért van, mert az apt cache túl kicsi ahhoz, hogy a ``testing''-et és az ``unstable''-t is kezelje a ``stable'' mellett. Ez hiba egyszerűen fixálható. Az alábbi sort kell az /etc/apt/apt.conf fileba felvenni:
APT::Cache-Limit "8388608";
Új csomagok telepítése
Az új csomagok telepítése egyszerű. Mint korábban az apt-get install paranccsal most is telepíthetünk. Ha a csomag megtalálható a ``stable'' terjesztésben, akkor az települni fog. Ha a csomag csak az ``unstable''-ben található csak meg, akkor onnan fog települni.
``De mi van akkor, ha a csomag megtalálható a ``stable''-ban és az ``unstable''-ben is, de mi az ``unstable''-ban levőt szeretnénk telepíteni?'' - hangozhat a kérdés.
Két utat választhatunk. Mindkét megoldás más szintaxissal működik, és mindegyiknek más a hatása: