Átállás Debian etch-ről kevert verziójú Debian-ra

Idézem trey bevezető mondatait az apt-pinning, avagy hogyan használjunk hibrid Debian terjesztést című cikkből.

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.

Fenti cikk elég részletesen leírja az apt-pinning mibenlétét és mikéntjét, azonban mégis a sok jó leírás ellenére (vagy talán éppen emiatt) az apt eme tulajdonsága a "haladó", vagy "kerülendő" kategóriába kerül és kihasználatlanul marad.

A hivatkozott probléma okai a például következők lehetnek:

  • nagyobb szoftverrendszerek egy komponensét nehéz, vagy képtelenség pinnelni, pl. gtk-s alkalmazások,
  • összekavarja a rendszert, a függőségeket,
  • a stabil verzióból még hiányzó csomagokat nehéz feltelepíteni, pl. Sun Java 6 JDK,
  • sokat kell "hekkelni", bonyolult kezdők számára, stb.

A felmerülő gondok miatt javasolják a backport-ok használatát, vagy a saját csomag építését, vagy külön chroot-os rendszer felépítését.

De mi ne adjuk fel!
Célunk tehát továbbra is egy "etch/stable" alapokon nyugvó rendszer megtartása és mellette a kívánt "desktop" alkalmazások frissítése "sid/unstable" verziójúra.

A kiválasztott alkalmazások és verzióik a következők:

  • iceweasel (2.0.0.6+2.0.0.8-0etch1 -> 2.0.0.8-1)
  • flashplugin-nonfree (9.0.31.0.1 -> 9.0.48.0.2)
  • sun-java6-jdk (6-03-2) /ez nincs "etch"-en/
  • gimp (2.2.13-1etch4 -> 2.4.0-2)
  • inkscape (0.44.1-1 -> 0.45.1-1+b1)
  • openoffice.org (2.0.4.dfsg.2-7etch2 -> 2.2.1-10)
  • pidgin (gaim 1:2.0.0+beta5-10 -> pidgin 2.2.2-1)
  • totem (2.16.5-3 -> 2.20.0-3) /ezt a kiterjedt gnome-gtk-s függőségek miatt/

1. Frissítés

A művelet megkezdése előtt frissítünk:


$ sudo apt-get update
$ sudo apt-get upgrade

Ekkor az /etc/apt/sources.list még így néz ki:


deb ftp://ftp.hu.debian.org/debian etch main contrib non-free
deb ftp://ftp.hu.debian.org/debian-security etch/updates main contrib non-free

2. sources.list módosítás

A frissítés után átírjuk a sources.list-et erre:


deb ftp://ftp.hu.debian.org/debian etch main contrib non-free
deb ftp://ftp.hu.debian.org/debian lenny main contrib non-free
deb ftp://ftp.hu.debian.org/debian sid main contrib non-free
deb ftp://ftp.hu.debian.org/debian-security etch/updates main contrib non-free
deb ftp://ftp.hu.debian.org/debian-security lenny/updates main contrib non-free

3. Apt beállítás

Valamint az /etc/apt/apt.conf-ba, vagy pl. /etc/apt/apt.conf.d/80defrelease-be (ez utóbbi saját választott fájlnév) írjuk be az alábbiakat:


APT::Cache-Limit 50000000;
APT::Default-Release "stable";

(A cache limit a "Dynamic MMap ran out of room" típusú hiba elkerülése érdekében kell.)

Az idézett cikkben említett /etc/apt/preferences fájl már nem szükséges az előbbi 'APT::Default-Release "stable";' miatt:
Package: *
Pin: release a=stable
Pin-Priority: 700

Package: *
Pin: release a=testing
Pin-Priority: 650

Package: *
Pin: release a=unstable
Pin-Priority: 600

4. Frissítés

Ezután ismét frissítünk:


$ sudo apt-get update
$ sudo apt-get upgrade

Ha minden rendben, akkor a rendszer nem akar semmit upgrade-elni.

5. Telepítés

Innentől a telepítés az idézett módon történik:

  • sudo apt-get install /unstable
    Ez telepíti a csomagot az ``unstable''-ből, de a ``stable''-ből próbálja meg a függőségeket rendezni. Ha nem tudja, akkor szól.
    ...
  • sudo apt-get -t unstable install
    Ez a megoldás a csomagot az ``unstable''-ből próbálja meg telepíteni, és a függőségeket is az ``unstable''-ből próbálja meg rendezni. Ez talán a könnyebb út.

Egy megjegyzés: nem aptitude-öt használunk, hanem apt-get-et, mert az aptitude elakad a dependency-számításban.

A telepítés lehetséges módjai:
a.

$ sudo apt-get install iceweasel/unstable flashplugin-nonfree/unstable sun-java6-jdk/unstable gimp/unstable inkscape/unstable openoffice.org/unstable pidgin/unstable totem/unstable

(itt a függőségeket a "stable"-ből próbálja meg rendezni a rendszer, tehát a rendszer stabilitása a fő szempont, az alkalmazásé alacsonyabb prioritású)
b.

$ sudo apt-get -t unstable install iceweasel flashplugin-nonfree sun-java6-jdk gimp inkscape openoffice.org pidgin totem

(itt a függőségeket a cél verzióból próbálja meg rendezni a rendszer, tehát az alkalmazás stabilitása a fő szempont, a rendszeré alacsonyabb prioritású)

Válasszuk a nekünk szimpatikusat (én a (b) megoldást választottam).

Végül megtekinhetjük az eredményt. A kiválasztott csomagok a keverés előtt:


ii  flashplugin-nonfree               9.0.31.0.1                      Adobe Flash Player plugin installer
ii  gaim                              2.0.0+beta5-10                  multi-protocol instant messaging client
ii  gimp                              2.2.13-1etch4                   The GNU Image Manipulation Program
ii  iceweasel                         2.0.0.6+2.0.0.8-0etch1          lightweight web browser based on Mozilla
ii  inkscape                          0.44.1-1                        vector-based drawing program
ii  openoffice.org                    2.0.4.dfsg.2-7etch2             OpenOffice.org Office suite version 2.0
ii  sun-java5-jdk                     1.5.0-10-3                      Sun Java(TM) Development Kit (JDK) 5.0
ii  totem                             2.16.5-3                        A simple media player for the Gnome desktop 

A keverés után:


ii  flashplugin-nonfree               9.0.48.0.2                      Adobe Flash Player plugin installer
rc  gaim                              2.0.0+beta5-10                  multi-protocol instant messaging client
ii  gimp                              2.4.0-2                         The GNU Image Manipulation Program
ii  iceweasel                         2.0.0.8-1                       lightweight web browser based on Mozilla
ii  inkscape                          0.45.1-1                        vector-based drawing program
ii  openoffice.org                    2.2.1-10                        OpenOffice.org Office suite
ii  pidgin                            2.2.2-1                         graphical multi-protocol instant messaging c
ii  sun-java5-jdk                     1.5.0-10-3                      Sun Java(TM) Development Kit (JDK) 5.0
ii  sun-java6-jdk                     6-03-2                          Sun Java(TM) Development Kit (JDK) 6
ii  totem                             2.20.0-3                        A simple media player for the Gnome desktop 

A rendszer továbbra is "etch/stable", a nekünk fontos csomagok viszont frissek ("sid/unstable").
Megjegyzés: A kívánt szoftverek "unstable" és nem "experimental" verziójúak, tehát még mindig stabilabb a rendszer, mint ha a mostanában igen divatos "experimental" repo-t használnánk.

Kiegészítés: backport-ok használata

A backport-ok a "testing" (zömében) és az "unstable" Debian-ágból (néhány esetben, pl. security update-ek esetén) újrafordított csomagok , így többnyire új library függőségek nélkül telepíthetőek egy "stable" Debian-ra. A backport-használat a pinneléses keverés egy speciális formájaként is értelmezhető.

1. Frissítés

A művelet megkezdése előtt frissítünk:


$ sudo apt-get update
$ sudo apt-get upgrade

2. sources.list módosítás

A következő sort szúrjuk be a /etc/apt/sources.list-be:

deb http://www.backports.org/debian etch-backports main contrib non-free

3. Frissítés

$ sudo apt-get update

4. Repo kulcs importálás

$ sudo apt-get install debian-backports-keyring

5. Telepítés

A backport csomagok alapértelmezetten deaktiválva vannak, ezért a telepítését explicit módon kell igényelni:

$ sudo apt-get -t etch-backports install packagename

A szintaktika ismerős a pinning-ből, valóban, lehetséges egyes csomagok pinnelése backport-os verzióra, pl.:


Package: mutt
Pin: release a=etch-backports
Pin-Priority: 999

Kiegészítés: a chroot/debootstrap módszer

Amennyiben rendszerünk stabilitása miatt aggódunk és még a backport-ok használata sem felel meg számunkra, akkor a végső megoldás a chroot-os alrendszer felépítése, ehhez olvasható a leírás log69 tollából.

Hozzászólások

köszi a remek összefoglalót, egyszer talán nekem is jól fog jönni...

--
by Mikul@s

Ugyeletes veszmadarkent megjegyeznem, hogy a friss csomagok magukkal ranthatnak ujabb verzioju libc-t peldaul, vagy ujabb verzioju egyeb libraryket es mas problema is lehet veluk, semmi nem garantalja az igy szetganyolt rendszer mukodokepesseget. Erre a tipusu igenyre szerintem inkabb a backports.org nyujt megoldast.

Nem a pinningre magara ertettem a ganyolast, hanem a sides csomagok pakolasara etch alapra. Erre reagaltam:
> A rendszer továbbra is "etch/stable", a nekünk fontos csomagok viszont frissek ("sid/unstable").

Igazabol ha jok a dependencyk, akkor segitik, hogy mindenbol a megfelelo verzio jojjon a sidbol kivalasztott csomagok melle, szoval akar meg mukodhet is :) Viszont pont az alapveto csomagokbol (pl. libc) ujabb verziokat huz magaval ez a megoldas, ami pontosan az etch alap megbolygatasat jelenti. A fent idezett celra a backports is kinal egy megoldast, ami talan kevesebb fejfajassal jar. Ki-ki dontse el, hogy neki melyik szimpatikus.

Ez így van, egyetértek.
Viszont a backports-ban nincs annyi csomag sajnos.
A fenti listából pl. csak a félkövérrel jelzettek vannak meg:

  • iceweasel
  • flashplugin-nonfree
  • sun-java6-jdk
  • gimp
  • inkscape
  • openoffice.org
  • pidgin
  • totem

Tehát ha rendszerstabilitás szempontból nézzük a dolgot, akkor

  1. apt-get -t debianverzió-backports install packagename
  2. apt-get install packagename/debianverzió
  3. apt-get -t debianverzió install packagename

sorrend lehet a helyes (ezt azonban tesztelni kell, ezért lehet).

Én ezt most csináltam meg, de félek hogy elqrta a rendszerem.

Konkrétan megcsináltam ahogy le van írva, minden oké volt, bár szinte a gnome felületét is lecserélte. Befagyott egy programom, sehogy nem bírtam bezárni, gondoltam újraindítom az xet. Akkor jött a feketeleves x elindul bejelentkezem és eltűnt a gnome menüje.

Valahogy nem lehetne visszacsinálni, úgyértve hogy ami most unstable az legyen stableből, ami meg nincs benne az törlődjön?