← Back to team overview

sslug-teknik team mailing list archive

Re: redhat: hjemmelavet up2date?

 

In <3BD66029.45374242@xxxxxx> Mogens Kjaer <mk@xxxxxx> writes:

>Er der nogen, der kender noget smart til dette?

Jeg blev træt af up2date for længe siden, og endte med at lave noget
tilsvarende selv som en kombination af en web-server, et
redhat-updates mirror, et CGI-script på web-serveren og et lokalt
script på den/de maskiner som skal opdateres.

Basalt set så fungerer det således, at man kører et script på den
maskine, som skal opdateres; det afgør hvilken Red Hat version og
platform det kører på, og sender det i en forespørgsel til et et
CGI-script på web-serveren. Webserveren returnerer så en liste over
alle de opdateringer der er tilgængelige - pakkenavn, versions-nummer,
URL til at downloade rpm-filen - filtreret således at man f.eks. får
den i686-optimerede glibc-version i stedet for den basale i386-udgave
hvor det er relevant.

Scriptet på den maskine der skal opdateres sammenligner så listen
over opdateringer med de pakker som er installeret, og downloader
de pakker som ikke er up-to-date.

Det løser ikke problemet med at pakkerne skal downloades flere
gange, men da jeg kan gøre det fra en lokal server i stedet for
at hente det hele fra Internet, er det ligegyldigt.

Scriptet kan ikke håndtere at afhængigheder mellem pakker ændres;
f.eks. blev glibc-pakken på et tidspunkt splittet op i en glibc-common
og en glibc pakke - det kan scriptet ikke hitte ud af. Men den slags
sker ret sjældent, så jeg har ikke gidet lave det om.

En anden fordel ved denne metode er, hvis man har nogle hjemme-lavede
pakker som skal distribueres til en stribe maskiner. Så er det ret
nemt at ændre CGI-scriptet til at inkludere disse i listen af 
"opdateringer" og dermed få dem gjort tilgængelige for andre.

Jeg har smidt de forskellige "stumper" ud på
http://www.sslug.dk/rpm/update/; "backend/" tingene bruges på
web-serveren, mens "frontend/getupd.sh" er det script man kører
for at opdatere en maskine. Hvis man vil prøve det af, så
kører backend-delen på SSLUG's server.

NB: Update-scriptet installerer ikke pakkerne, men downloader 
dem blot til et katalog under /tmp/ - så kan man selv installere
dem med "rpm -Fvh ..."
-- 
Henrik Storner <henrik@xxxxxxx> 



Follow ups

References