HTML

Bagoj úr blogja

Kíváncsi Bagoj befigyel a Linux belsejébe, illetve különféle Linux terjesztéseket próbál ki. Ha jó napja van, scriptet ír Neked.

Friss topikok

Arch Linux - hogyan downgrade-eljünk csomagokat?

2012.11.25. 20:47 bagoj ur

Mindig tanul az ember valamit, és Linuxon ez hatványozottan így van. Ezért szeretjük, hiszen így nem kell minden nap zombiként, lógó nyállal ugyanazt az unalmas felületet bámulnunk, és megvan az életünk fűszerezése. :-)

A hét elején ismét frissült az Arch (azaz: én frissítettem). Megkaptam a 3.6.6-os kernelt és egyéb nyalánkságokat is. Sajna a reboot után azt vettem észre, hogy a wi-fi egyáltalán nem működik - az interfészt látom, fel is lehet húzni, sőt, rá is tud csatlakozni az Access Pointra, de IP címet már nem kap.Ez azért is elkeserítő, mert amióta 3.6.3-as volt, azóta rosszalkodott, többször neki kellett futni, mire IP-t kapott a wifiről. Mivel a wifi-s szkriptem ezt kezelte, mindössze várnom kellett egy kicsit, ami nem volt kellemes, és akartam is foglalkozni vele a lehető leghamarabb, miközben reménykedtem, hogy megjavul magától. :-) Most már muszáj volt lépnem.

Felhúztam tehát a szemöldököm, és előkaptam egy kábelt, hogy azzal kapcsolódjak a kis routerre. Ott kaptam IP címet, de kb. fél perc után leszakadt a netről, és csak a kártya lekapcsolása, majd felhúzása segített csak, de az is csak egy újabb fél percig. A dmesg ezt mondta:

NETDEV WATCHDOG: eth0 (sis190): transmit queue 0 timed out

Rákerestem az "arch kernel 3.6.6 network problem" kifejezésre, találtam is egy Arcsis fórumot, de segítséget nem igazán. Annak viszont a fele sem tréfa, hogy lényegében net nélkül maradtam. :-( Arra gondoltam, hogy valahogyan visszarakom a régi kernelt, hogy legyen stabil net, hiszen anélkül bugreportot se tudok adni, meg tovább keresgélni sem a megoldás után.

Hogyan lehet egy régi kernelt visszarakni?

Aszongya a downgrading packages oldal, hogy a /var/cache/pacman/pkg alatt ha még ott vannak a régi csomagok, akkor egyszerűen

pacman -U /var/cache/pacman/pkg/<csomagnév>

Nade mi van, ha nincsenek meg? Mint pl. nálam... :-D

Van egy nagyon egyszerű és hatásos, ráutaló nevű csomag, amit most ajánlok mindenkinek felrakásra. Ez a downgrade nevű, AUR-on keresztül elérhető programocska egy bash szkript. Telepítése úgy történt, hogy

1. Az oldaláról letöltöttem az AUR kátránylabdát ("download tarball" a jobb oldalon).
2. Kicsomagoltam a tar.gz-t és futtattam egy "makepkg -scr" parancsot. Ez felrak minden függőséget, ami a fordításhoz kell, majd el is távolítja azt, ezért szoktam mindig így használni, habár most az egyetlen függőséget, a wget-et fent hagytam. Az eredményképpen előálló downgrade-3.2-2-any.pkg.tar.xz nevű, immár Arch Linux csomagot természetesen
3. A pacman -U downgrade-3.2-2-any.pkg.tar.xz felrakta szép rendben (ez ismét lehúzta volna a wget-et, mint függőséget, ezért is hagytam fent)

Miután feltettem a downgrade programot, a régi csomagok telepítése gyermekien egyszerűvé vált. Példa:

downgrade linux

(Itt a linux ugye a linux kernel-t jelenti!) Ekkor lelistázza, hogy milyen régi csomagokat talált (keres gépen, illetve az ARM (Arch Rollback Machine) nevű weboldalon), és szépen listázza őket. Kiválasztjuk a nekünk tetszőt, letölti a /tmp könyvtárba és a pacman segítségével felrakja. (Nem kell root-ként futtatnunk, sudo-t használ és a megfelelő időben bekéri a jelszót.)

Még kis probléma lehet, hogy a letöltött régi csomag ütközik, vagy jelen pillanatban nem teljesíthető függőségei vannak. Ez nem gond, ilyenkor ne rakjuk fel a csomagot, hanem töltsük le hasonlóképpen a függőségeit is a /tmp alá, majd kézzel egy jól irányzott pacman -U segítségével felrakjuk őket egyszerre, így már nem lesz probléma a függőség.

Ez a downgrade szkript olyan jófej, hogy ezután azt is megkérdi, hogy betesszük-e a nem frissítendők közé a most downgrade-elt csomagot, nehogy a következő pacman -Syu felülvágja - ekkor ugyebár a /etc/pacman.conf fájlba írja bele az IgnorePkg szekcióba ezeknek a csomagoknak a nevét elméletileg - gyakorlatban nem vettem észre, hogy megcsinálná, majd figyelek a legközelebbi frissítéskor.

Felraktam hát a 3.6.2-1 kernelt, és az nvidia 304.51-4 verzióját, hiszen különben nem indult volna el az X a legközelebbi rebootkor. Ezután reboot, és voilá, nagyszerűen megy a wifi is.

Ennyit mára az Arch világából, remélem legközelebb nem olyannal jelentkezem, hogy egy frissítés elrontott valamit... :-)))

Utóirat: Ez az ARM egyébként félelmetes. Időbeli bontásban tartalmazza minden hivatalos Arch csomag visszamenőleges változatait, így akár össze lehetne hozni egy szkriptet mondjuk azzal, hogy én szeretnék visszaállni arra az állapotra, amiben pl. 2012 március 27-én volt a rendszerem. Ezzel a rolling distro nem csak előre, hanem hátra is görgethető. Nyilván nem fogom kipróbálni, hiszen elég kevés az esély, hogy ebből konzisztensen jöjjön ki a rendszer, de akinek sok ideje van, belefoghat, hiszen mint megtudtam, az Arch a buherálásról szól. ;-)

3 komment

Címkék: linux fordítás wifi hogyan kernel downgrade parancssor visszaállítás csomagkezelés

A bejegyzés trackback címe:

https://bagojur.blog.hu/api/trackback/id/tr414925082

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

semmikozod 2012.11.27. 14:05:37

Észrevettem a buhera megjegyzést és tetszik :)
Egyébként elég használható még downgrader, valamint a pacsnap is. A pacsnap főleg arra a bizonyos konzisztenciára lő, amit említettél a cikkben.

ConanHUN 2012.11.28. 12:00:58

hasonló problémám van nekem is csak nálam rögtön akkor miután frissen feltelepítem a legujabb kiadást

nekem még az októberi rilíz van kiírva és telepítés közben van hálózat minden remekül megy viszont mitán felteszem (net install) ugye a legújabb dolgokat tölti le és reboot után egyszerüen nincs hálózatom

semmikozod 2012.12.03. 09:28:56

@ConanHUN: Áttértél network-ről netcfg-re? Ugyanis a network-öt nem támogatják már.