[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Stable Updates zu DSA 815-1 (kdebase)



Gruesse!
* Dirk Salva <dsalva@gmx.de> schrieb am [19.09.05 21:03]:
> On Mon, Sep 19, 2005 at 07:34:18PM +0200, Gerhard Brauer wrote:

> > Ich kann auch mein apt-dsl Skript anwerfen was mir für alle meine
> > Rechner eine Download-Liste erstellt mit der ich dann zum Kumpel gehe,
> > der mit DSL/Flat gesegnet ist.
> 
> ? Posten, am besten mit Erklärung:-)

Ist keine Magie und andere Beispiele wurden schon öfters auf der Liste
gepostet.
Voraussetzen muß ich allerdings, daß ich auf meinem Server apt-proxy
installiert habe und die Clients sich von diesem die Pakete holen. Diese
Konstellation dürften aber viele haben. Ich muß im Skript lediglich die
Voraussetzung schaffen, das Downloads eben von den realen Servern geholt
werden anstatt vom proxy. Ohne apt-proxy kann auf den Backend-Teil und
auf den sed-Lauf verzichtet werden.

So gehe ich vor: 
a) apt-dsl.sh liegt bei mir auf einem nfs-share in einem eigenen
Verzeichniss. Die Clients haben diesen share gemeountet. Für
jeden upzudatenden Rechner gehe ich als root per ssh auf diesen Rechner
und führe das Skript dort aus. Es wird auf diesem PC jetzt ein apt-get
dist-upgrade angestoßen was im Skript unbedingt mit no/Nein zu
beantworten ist. Danach wird für diesen PC eine Datei uris.HOSTANME
erstellt welche die updatefähigen Pakete enthält.
Da die Download-URLs noch auf den apt-proxy zeigen werden diese durch
die realen Server analog zu den Backends in der apt-proxy.conf ersetzt.

b) merge.sh wird danach auf irgendeinem PC ausgeführt und erstellt aus
den Listen der einzelnen PC eine einzige Download-Datei. Und es kümmert
sich darum, das Pakete jeweils nur einmal in dieser Liste downgeloadet
werden. Und es erstellt mir diverse Listen, die dann bei den
DSL-Kumpels ausgeführt werden (Linux oder Win). Außerdem werden diese
Listen nochmal gezippt um per Mail versendet werden zu können,

c) Am DSL-rechner muß wget installiert sein. Bei Linux langt dann ein:
	sh wget-dsl.lst
unter Windows das Starten von:
	wget-dsl.cmd

d) Daheim importier ich dann mit apt-proxy-import die Debs in den Proxy
und kann dann die gewünschten Updates vornehmen.

Hier die Skripts:
-----------------

apt-dsl.sh
-----------
#!/bin/sh

# Aendern: Adresse des apt-proxy
APTP="http:\/\/192.168.1.1:9999"

# Aendern:
# Backends von apt-proxy zum Ersetzen
# Hier die eigenen Backends aus apt-proxy.conf
# eintragen
BE_debian="$APTP\/debian"
BE_marillat="$APTP\/marillat"
BE_nonUS="$APTP\/non-US"
BE_security="$APTP\/security"

# Aendern:
# Die richtigen Server zu den Backends
# Diese ersetzen den Gegenpart vom apt-proxy
SRV_debian="http:\/\/ftp.de.debian.org\/debian"
SRV_marillat="ftp:\/\/ftp.nerim.net\/debian-marillat"
SRV_nonUS="http:\/\/ftp.de.debian.org\/debian-non-US"
SRV_security="http:\/\/security.debian.org"

echo "---> Starte dist-upgrade zur Uebersicht"
echo "Bitte mit no antworten!"
echo ""
apt-get dist-upgrade

echo ""
echo "---> Erstelle Download-datei fuer $HOSTNAME"
# Ab hier reinstes Vodoo,  alles nur geklaut...
apt-get -qq --print-uris dist-upgrade > uris.$HOSTNAME

# Aendern:
# Hier werden die apt-proxy URLs durch die realen ersetzt.
sed -e s/"'"//g 				\
    -e s/$BE_debian/$SRV_debian/g 		\
    -e s/$BE_marillat/$SRV_marillat/g 		\
    -e s/$BE_nonUS/$SRV_nonUS/g			\
    -e s/$BE_security/$SRV_security/g		\
    < uris.$HOSTNAME > urisnew.$HOSTNAME

# Hier koennen wget Parameter geaendert werden.
# Achtung: Backticks (') bei awk
#awk '{print "wget -nc -O " $2 " " $1}' < urisnew.$HOSTNAME > download.$HOSTNAME
awk '{print "wget -O " $2 " " $1}' < urisnew.$HOSTNAME > download.$HOSTNAME

rm uris.$HOSTNAME urisnew.$HOSTNAME

echo ""
echo "Ich habe fertig."
exit 0
------------------------------

merge.sh
---------
#!/bin/sh

# Sortiere Liste aller download-Dateien unique
# und gebe diese Liste nach wget-dsl.lst aus
#
# gleichzeitig mit todos eine .cmd Datei im
# DOS Format für Download von einem DOS-System
sort -u download* -o wget-dsl.lst
todos < wget-dsl.lst > wget-dsl.cmd
# zusätzlich nochmal zippen
gzip -c wget-dsl.lst > wget-dsl.lst.gz
gzip -c wget-dsl.cmd > wget-dsl.cmd.gz

exit 0
---------------------------------

> ciao, Dirk

Gruß
	Gerhard

-- 
MSCI = M$cro Soft Certificated Installer



Reply to: