Uwe Kerstan schrieb:
* Bastian Venthur <[EMAIL PROTECTED]> [11-02-2005 22:26]:


Gibt es irgendwo eine Liste von den Paketen, die von einem minimalen Debian-Sarge ben�tigt werden? Die "essentials" sind wohl eine Nummer zu kleinlich gedacht, da ist ja nichtmal ifconfig, ps oder top dabei. Von "base" wiederum sind aber z.B. auf einem Router auch nicht alle Pakte instaliert, also ist "base" schon wieder zu viel des Guten.


Kannst dir selber eine Liste basteln:

$ dpkg-awk Essential:.*yes -- Package >/tmp/liste
$ dpkg-awk Priority:.*required -- Package >>/tmp/liste
$ dpkg-awk Priority:.*important -- Package >>/tmp/liste
$ grep ^Package /tmp/liste | sort | uniq

Wenn das zu viel ist, kannst du immer noch abspecken. ;-)

Hallo nochmal,

ich habe mir jetzt ein Skript gebastelt, was eine Datei auf die oben genannte Art erstellt und hinter jedem Paketnamen "install" setzt. (inlist)

Dann wird eine zweite Datei erstellt in dem Alle Pakete aus dpgk --get-selections sind, nur das alle "install" durch "deinstall" ersetzt wurden (outlist).

Anschlie�end werden beide Listen mit dpkg --get-selections eingelesen (zuerst die mit den "deinstalls", dann die mit den "installs". Dadurch werden Pakete die Pakete, die durch die erste Liste auf "deinstall" gesetzt wurden wieder gerettet, falls sie unter der Liste der ben�tigten Dateien sind.

Soweit so gut. Nun m�chte ich aber die M�glichkeit anbieten in einer dritten Datei Paketnamen anzugeben, die auch noch installiert werden sollen.
Das Problem ist, wenn diese Pakete wiederum von anderen Abh�ngen, kann man nicht einfach "paketname install" in meine in-liste schreiben -- apt w�rde diesen Wunsch dann ignorieren, weil dieses Paket so wie es da steht ja noch broken ist.


Kann mir einer einen Hinweis geben, wie ich alle ben�gtigen Abh�ngigkeiten herausbekomme oder sonstwie geschickt die Pakete aus der dritten Datei (keeplist) in mein Skript einbaue?

Hinweise/Kritik zum Skript selber sind auch willkommen.


Sch�ne Gr��e

Bastian

Das Skript:
---------8<------------------
#!/bin/sh
#
# Skript zum entfernen aller unn�tigen Pakete aus einem Debiansystem.
# Erstellt zur S�uberung der vserver von Server4You.
#
# -- Bastian Venthur 2005

# working-dir
DIR=`pwd`

# temporary an final file for packagelist
TMPFILE=${DIR}/tmplist

INFILE=${DIR}/pkglist_in
OUTFILE=${DIR}/pkglist_out

KEEP=${DIR}/keep-list

# Cleanup
rm "$TMPFILE" "$OUTFILE" "$INFILE" 2> /dev/null

# Get list of essential, required and important packages an put it into the
# tempfile.
dpkg-awk Essential:.*yes -- Package > "$TMPFILE"
dpkg-awk Priority:.*required -- Package >> "$TMPFILE"
dpkg-awk Priority:.*important -- Package >> "$TMPFILE"

# Delete dups and sort the list.
grep ^Package "$TMPFILE" | sort | uniq > "$INFILE"

# Delete leading "Package"-String in every line.
cat "$INFILE" | awk '{print $2 " install"}' > "$TMPFILE"
mv "$TMPFILE" "$INFILE"

# Insert the list of packages we want to keep
cat "$KEEP" | awk '{print $1 " install"}'  >> "$INFILE"


# Get list of currently installed Packages, mark them to "deinstall" and save
# list to file.
dpkg --get-selections > "$TMPFILE"
cat "$TMPFILE" | awk '{print $1 " deinstall"}' > "$OUTFILE"



# Tell apt which Packages we would like to install dpkg --set-selections < "$OUTFILE" dpkg --set-selections < "$INFILE"

# Cleanup
rm "$TMPFILE" "$OUTFILE" "$INFILE" 2> /dev/null

#
# Let's to this!
#
apt-get dselect-upgrade
---------8<------------------


--
Haeufig gestellte Fragen und Antworten (FAQ): http://www.de.debian.org/debian-user-german-FAQ/


Zum AUSTRAGEN schicken Sie eine Mail an [EMAIL PROTECTED]
mit dem Subject "unsubscribe". Probleme? Mail an [EMAIL PROTECTED] (engl)



Antwort per Email an