AIX - suma - fixget

 ( LGee | 2010. április 27., kedd - 17:42 )

Ezt az URL-t hasznalja az AIX online update utility-je, a SUMA.
Szerencsere dokumentalva is van a mukodese... kivaloan megfelel a Fix Central delivery URl generalasa helyett kozvetlen letoltesre.

Hasznalat: http://www14.software.ibm.com/webapp/set2/fixget
Szerver statusza: http://www14.software.ibm.com/webapp/set2/fixget?get=status
Pelda: http://www14.software.ibm.com/webapp/set2/fixget?t=L&ml=V610004&of=clean - wget-nek atadhato lista, 6.1 TL4 aktualis oslevel-t feltetelezve

A tobbi gyerekjatek...

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

Kimaradt ez a hasznos link.

A suma-t helyettesitve egy kicsit nehezkes modszer arra, ha nem akarunk teljes TL-t letolteni, csak a meglevo filesetekhez:

Generaljuk le a telepitett filesetek listajat:

$ lslpp -lcq | awk -F\: {print $2} | sort -u | sed 's/$/\./g'> installed.txt

A seddel a sor vegere tett ponttal megakadalyozhato az egymas halmazait kepezo filesetnevek keveredese (pl. bos.adt.libm, bos.adt.libmio) a kesobbi keresesnel.

A fixget URL-lel toltsuk le a legfrissebb TL/SP filelistajat, ebben az esetben a kiindulo TL alacsonyabb volt (6100-03-00), mint a legujabb (6100-05-02):

$ wget -O updates.txt http://www14.software.ibm.com/webapp/set2/fixget?t=M&fl=latest&ml=V610003&of=clean

Ebbol a filesetek listajat felhasznalva valogassuk ki a szuksegeseket, azokbol is a legutolsot (valamiert tobb verzio is lejon):

$ for fileset in $(<installed.txt); do grep "$fileset" updates.txt | sort -n | tail -1 | tee -a download.txt; done

Es kesz is van a wget-nek adhato, immar (remelhetoleg) testreszabott lista:

$ wget --background -c -i download.txt

Ha lejott mind, mehet is az install, eloszor preview, majd 'live' modban:

# install_all_updates -pYd /path/to/filesets
# install_all_updates -Yd /path/to/filesets

Sikeres update eseten a megfelelo tesztidoszak eltelte utan lehet veglegesiteni az update-et:

# installp -c all

$ for fileset in $(< installed.txt);

Elalelok a gyonyortol. Egy ember, aki olvas doksit (es ksh-t hasznal)

(Amugy az elso parancsbeli sed -nel nem kell takarni a .-ot, hisz a "mirecsereljuk" sztring, nem pedig RE. Sot a /g sem kell, hiszen sorvege csak egy van soronkent :-)

> Amugy az elso parancsbeli sed -nel nem kell takarni a .-ot

Persze, tudom, a 'global'-t csak megszokasbol hagyom mindig a csere vegen.
Amugy az egesz eleve amolyan quick'n'dirty megoldas.

---

Update: AIX TL-ek kozott idonkent bevezetnek uj base level fileseteket, ezert ha TL upgrade soran a fenti megoldast kovetjuk, ezek lehet, hogy hianyozni fognak, mert sok mas fileset fugghet toluk.

Base level filesetnek az IBM azokat hivja, amik nem upgrade, hanem install reven kerulnek a rendszerre. Ezeket rendszerint csak a telepito mediumon lehet megtalalni, bar ujabban az IBM mar lehetove teszi az ugyfelek szamara az egyes filesetek egyedi letolteset is...
Eloallhat viszont olyan helyzet is, amikor annyit valtozik a fileset, hogy az upgrade uj, base level filesetet tesz fel egy meglevobol, vagy egyszeruen megjelenik egy uj.

Jelen esetben a kovetkezoket kellett feltenni:

ICU4C.rte 6.1.5.0 (generalt listaban a ICU4C.rte.6.1.5.1.bff szerepelt)
bos.rte 6.1.5.0 (itt szerintem valami nem jott ossze a grepes megoldassal)*

A lenyeg, hogy a fenti megoldas messze nem tokeletes, de persze az elso install_all_updates ugyis fenyt derit erre.

*A helyes megkozelites egy regexp, amivel a

\.[[:digit:]]\.[[:digit:]]\.[[:digit:]]\.[[:digit:]]\.bff

stringet vagjuk le az URL sorok vegerol ('.6.1.5.1.bff'), mert a fileset szamozasa mindig 4 tagu.

Jol elvagyok magamban? ;-)

szerk. A kesz megoldas (nem teszteltem upgrade-del):

$ for fileset in $(<installed.txt); do egrep "$fileset\.[[:digit:]]\.[[:digit:]]\.[[:digit:]]\.[[:digit:]]\.bff" updates.txt | sort -n | tail -1 | tee -a download.txt; done

Idézet:
Jol elvagyok magamban? ;-)

El. :)
De hogy ne csak magadban legyel: az ismetlodo mintakat felirhatod ilyen formaban is:

egrep "$fileset\.([[:digit:]]\.){4}bff

Jogos, ismerem, de itt eszembe se jutott ;-)

Hianyzo TL filesetek osszegyujtese:

oslevel -rl 6100-06 2> /dev/null | while read fileset oldlevel newlevel; do echo "$(echo $fileset | awk -F\. '{print $1"."$2"/"}')$fileset"."$newlevel.bff"; done > download.lst