freiesMagazin 01/2010
freiesMagazin 01/2010
freiesMagazin 01/2010
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
########################<br />
# Argumentpruefung<br />
########################<br />
if [ $# -eq 0 ]<br />
then<br />
echo "Es wurden keine Parameter<br />
uebergeben."<br />
exit 1<br />
fi<br />
if [ $# -gt 1 ]<br />
then<br />
echo "Es wurden mehr als ein <br />
Parameter uebergeben."<br />
exit 1<br />
fi<br />
if !([ -f "$1" ])<br />
then<br />
echo "Datei $1 existiert nicht<br />
."<br />
exit 1<br />
fi<br />
########################<br />
# "Globale" Variablen<br />
# (Zum Veraendern!)<br />
########################<br />
# Zusatz beim Speichern der <br />
Paketliste<br />
SUFFIX="all"<br />
# Verzeichnis fuer temporaere <br />
Dateien<br />
TEMP="/tmp"<br />
########################<br />
# "Lokale" Variablen<br />
########################<br />
# Quelldatei mit den Paketen , die <br />
installiert<br />
# werden sollen.<br />
ORIGIN="$1"<br />
# Name der letzten Paketdatei<br />
LAST="$ORIGIN"<br />
# Name der neuen Paketdatei<br />
NEW="$ORIGIN"<br />
# Anzahl der Pakete in der <br />
Quelldatei<br />
NUMBER=‘wc -l "$ORIGIN" | nawk ’{ <br />
print $1 }’‘<br />
# Alte Anzahl Pakete zum Vergleich<br />
OLDNUMBER ="0"<br />
# Zaehler fuer die Iteration<br />
COUNTER=0<br />
########################<br />
# Implementierung<br />
########################<br />
# Solange iterieren , bis keine <br />
neuen Pakete<br />
# dazu gekommen sind.<br />
while [ $OLDNUMBER != $NUMBER ]<br />
do<br />
PAKETVERWALTUNG<br />
# Neue Iteration beginnen.<br />
# Neuen Dateinamen setzen.<br />
COUNTER=$(( $COUNTER + 1 ))<br />
NEW="$TEMP/$ORIGIN$COUNTER"<br />
TEMPFILE="$NEW -tmp"<br />
# Pakete extrahieren<br />
xargs -a "$LAST" apt -cache <br />
depends -i | \<br />
nawk ’{ print $NF }’ | sort<br />
| uniq | \<br />
egrep -v "" \<br />
> "$TEMPFILE" | exit 1<br />
# Alte Pakete hinzufuegen<br />
cat "$LAST" >> "$TEMPFILE" | <br />
exit 1<br />
# Paketliste sortieren<br />
cat "$TEMPFILE" | sort | uniq ><br />
"$NEW" | exit 1<br />
# Alte Daten sichern<br />
LAST="$NEW"<br />
OLDNUMBER=$NUMBER<br />
# Neue Anzahl Pakete berechnen<br />
NUMBER=‘wc -l "$NEW" | nawk ’{ <br />
print $1 }’‘<br />
done<br />
# Kopiere komplette Paketliste<br />
cp "$NEW" "$ORIGIN -$SUFFIX" | exit <br />
1<br />
echo<br />
© <strong>freiesMagazin</strong> GNU FDL Ausgabe <strong>01</strong>/2<strong>01</strong>0 12