Squeeze: dpkg --get-selections, Stern funktioniert nicht

Du kommst mit der Installation nicht voran oder willst noch was nachfragen? Schau auch in den "Tipps und Tricks"-Bereich.
Antworten
kehler
Beiträge: 4
Registriert: 05.11.2011 17:42:35

Squeeze: dpkg --get-selections, Stern funktioniert nicht

Beitrag von kehler » 05.11.2011 18:11:24

Hallo,

habe schon seit einigen Jahren Debian (hauptsächlich Server) installiert. Um nur die wirklich benötigten Pakete auf dem System zu haben, bin ich folgendermaßen vorgegangen.

Zuerst wurde eine Minimal-Installation durchgeführt, dann alle Pakete die ich nicht benötige deinstalliert (purge) und nun noch einige zusätzliche Pakete installiert. Bisher konnte ich nun mit:

Code: Alles auswählen

dpkg --get-selections "*" > minimal_pkg.txt
eine Liste erstellen, in der die installierten und gelöschten Pakete dieses Systems aufgeführt waren.

Danach konnte ich auf einem andern System wieder eine Minimal-Installation durchführen und die 'minimal_pkg.txt' auf dieses System anwenden:

Code: Alles auswählen

dpkg --set-selections < minimal_pkg.txt && apt-get -u dselect-upgrade
Unter Debian Squeeze werden aber nur noch die installierten Pakete angezeigt, nicht die gelöschten. Es ist auch egal ob ich:

Code: Alles auswählen

dpkg --get-selections
mit oder ohne "Stern" eingebe.

Wie kann ich unter Squeeze zum gleichen Ergebnis gelangen wie vorher unter Sarge, Etch und Lenny?

Hmmm, bin etwas ratlos :roll:

syssi
Beiträge: 2951
Registriert: 24.12.2010 16:50:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rheinland

Re: Squeeze: dpkg --get-selections, Stern funktioniert nicht

Beitrag von syssi » 05.11.2011 18:33:28

Hi,

in Squeeze hat sich das Verhalten nicht geaendert. Hier ein Beispiel:

sebastian@leonard:~$ cat /etc/issue
Debian GNU/Linux 6.0 \n \l

Code: Alles auswählen

$ dpkg --get-selections | grep purge
libavc1394-0                                    purge
libfaac0                                        purge
libx264-112                                     purge
$ dpkg --get-selections '*' | grep purge
libavc1394-0                                    purge
libfaac0                                        purge
libx264-112                                     purge
$ dpkg --get-selections '*' | grep deinst
libsdl-image1.2                                 deinstall
libtar                                          deinstall
libxcb-keysyms1                                 deinstall
libxcb-randr0                                   deinstall
libxcb-xv0                                      deinstall
$ dpkg --get-selections | grep deinst
libsdl-image1.2                                 deinstall
libtar                                          deinstall
libxcb-keysyms1                                 deinstall
libxcb-randr0                                   deinstall
libxcb-xv0                                      deinstall
$  
Wie sehen bei dir die Ausgaben aus? Ist die Ausgabe von "get-selections" in Ordnung, nur dselect-upgrade verweigert seinen Dienst? Oder scheitert es wirklich schon vorher?

Gruss syssi

Benutzeravatar
r900
Beiträge: 1053
Registriert: 09.10.2011 20:06:11
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Stockholm

Re: Squeeze: dpkg --get-selections, Stern funktioniert nicht

Beitrag von r900 » 05.11.2011 18:35:13

Tja das ist schon komisch, laut man-page sollte es so sein wie kehler sagt:
man dpkg hat geschrieben: --get-selections [Paket-Name-Muster...]
Hole Liste von Paketauswahlen und schreibe sie auf die Standardausgabe. Ohne Muster werden nicht-installierte Pakete (d.h. solche, die vorher »vollständig gelöscht« wurden) nicht angezeigt.
Aber so müsste es gehen:
man dpkg hat geschrieben: --clear-selections
Setze den erbetenen Zustand von jedem nicht-essenziellen Paket auf »Deinstallation«. Dies ist dazu gedacht, direkt vor --set-selections verwendet zu werden, um jedes Paket, dass nicht in der Liste von --set-selections vorkommt, zu deinstallieren.
So habe ich das bisher gemacht.

dpkg --get-selections '*' | grep purge zeigt bei mir auch nichts an.
dpkg --version: 1.15.8.11 (i386)

kehler
Beiträge: 4
Registriert: 05.11.2011 17:42:35

Re: Squeeze: dpkg --get-selections, Stern funktioniert nicht

Beitrag von kehler » 05.11.2011 19:41:35

syssi hat geschrieben: ...
Wie sehen bei dir die Ausgaben aus? Ist die Ausgabe von "get-selections" in Ordnung, nur dselect-upgrade verweigert seinen Dienst? Oder scheitert es wirklich schon vorher?

Gruss syssi
Hi syssi,

ein:

Code: Alles auswählen

cat /etc/debian_version
gibt schon die richtige Version aus (Squeeze)

Code: Alles auswählen

6.0.3
Aber eben ein

Code: Alles auswählen

dpkg --get-selections "*"
zeigt keinerlei gelöschten Pakete an, da liegt das Problem!
Das gleiche Problem ist mir auch schon unter Ubuntu 10.4 (lucid) aufgefallen. Debian 6.0 und Ubuntu 10.4 sind ja fast gleich, doch ich dachte, da haben eben die Ubuntu'ler was daran herumgeschraubt.

@r900
Ein

Code: Alles auswählen

dpkg --clear-selections
bringt leider auch nicht das richtige Ergebnis, hier werden zwar Pakete im Zustand 'deinstall' angezeigt, aber keinerlei im Zustand 'purge'.

Z.B. habe ich diese Pakete gelöscht, nicht 'nur entfernt':

Code: Alles auswählen

aspell aspell-de aspell-de-alt bsd-mailx busybox debian-faq dictionaries-common ..
aber ein

Code: Alles auswählen

dpkg --get-selections "*" | grep aspell
bringt kein Ergebnis, nichts wird angezeigt.

Alles weitere wie:

Code: Alles auswählen

dpkg --set-selections < minimal_pkg.txt && apt-get -u dselect-upgrade
funktioniert wie gewohnt einwandfrei.

Eine Installation habe ich mit der 'Net-Install' -CD ausgeführt und die Andere über PXE, da dieses System kein CD-ROM Laufwerk hat und nicht über USB booten kann.

Bei keinem der beiden Systeme funktioniert die Ausgabe von '--get-selections' mit dem Stern um die vorher gelöschten Pakete anzuzeigen.

So, nun bin ich doch etwas frustriert, deshalb schaue ich mir nachher den Gottschalk im zweiten an, vielleicht heitert mich das ein bisschen auf :D

Viele Grüße, Kehler

Benutzeravatar
r900
Beiträge: 1053
Registriert: 09.10.2011 20:06:11
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Stockholm

Re: Squeeze: dpkg --get-selections, Stern funktioniert nicht

Beitrag von r900 » 05.11.2011 20:06:38

kehler hat geschrieben: Ein

Code: Alles auswählen

dpkg --clear-selections
bringt leider auch nicht das richtige Ergebnis, hier werden zwar Pakete im Zustand 'deinstall' angezeigt, aber keinerlei im Zustand 'purge'.

Alles weitere wie:

Code: Alles auswählen

dpkg --set-selections < minimal_pkg.txt && apt-get -u dselect-upgrade
funktioniert wie gewohnt einwandfrei.
Da hast du mich etwas falsch verstanden, --clear-selections soll ja auch nichts ausgeben. Es sorgt nur dafür, dass alle nicht-essentiellen Pakete zur Deinstallation vorgemerkt werden. Und dann sollte dein "dpkg --set-selections < minimal_pkg.txt && apt-get -u dselect-upgrade" bewirken, dass alle Pakete, außer die in minimal_pkg.txt mit "install" angegebenen, runterfliegen.

Viel Vergnügen mit Gottschalk :lol:

Benutzeravatar
r900
Beiträge: 1053
Registriert: 09.10.2011 20:06:11
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Stockholm

Re: Squeeze: dpkg --get-selections, Stern funktioniert nicht

Beitrag von r900 » 06.11.2011 14:49:34

@syssi: Ist deine dpkg-Version auch 1.15.8.11? Eigentlich sollte die Ausgabe von "dpkg --get-selections" und "dpkg --get-selections '*'" unterschiedlich sein, so steht es jedenfalls im manual.
Kannst du mal in die Datei '/var/lib/dpkg/status' reinschauen? Bei mir stehen da nur Pakete mit "Status: install ok installed" drin. Stehen da bei dir auch welche mit purge drin oder wo verwaltet dpkg diese Informationen?
Und welches Programm benutzt du zur Paketverwaltung? dselect, apt, aptitude, synaptic, ..?

kehler
Beiträge: 4
Registriert: 05.11.2011 17:42:35

Re: Squeeze: dpkg --get-selections, Stern funktioniert nicht

Beitrag von kehler » 07.11.2011 10:25:29

Also, wie es aussieht funktioniert die Geschichte mit dem Stern in Anführungszeichen ("*") nicht mehr.
Unter Lenny wird das

Code: Alles auswählen

Debian »dpkg« Paketmanagement-Programm Version 1.14.31
verwendet, dort funktioniert es noch einwandfrei.

Unter Squeeze wird das

Code: Alles auswählen

Debian »dpkg« Paketmanagement-Programm Version 1.15.8.11
verwendet, hier funktioniert es NICHT mehr!

Somit sind die Angaben im Debian Anwenderhandbuch nun falsch, z.B.
deutsch: http://debiananwenderhandbuch.de/dpkg.html#dpkggetgs
englisch:http://www.debian.org/doc/manuals/debia ... figuration

Eigentlich bleibt nun nur noch die Möglichkeit ein (Minimal)-System zu installieren, dieses dann per rsync, USB-Stick, ... auf das andere System zu kopieren und dort anzupassen.

Ein wirklich großer Rückschritt :cry:

Benutzeravatar
r900
Beiträge: 1053
Registriert: 09.10.2011 20:06:11
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Stockholm

Re: Squeeze: dpkg --get-selections, Stern funktioniert nicht

Beitrag von r900 » 07.11.2011 13:20:32

@kehler: Wer lesen kann ist klar im Vorteil.. ich erkläre es aber gern nochmal :wink:
Für deine Zwecke wird die folgende Befehlsfolge einwandfrei funktionieren, egal ob Pakete mit "purge" in deiner minimal_pkg.txt auftauchen oder nicht:

Code: Alles auswählen

dpkg --clear-selections
dpkg --set-selections < minimal_pkg.txt
apt-get dselect-upgrade
Denn '--clear-selections' setzt den Zustand von jedem nicht-essenziellen Paket auf "Deinstallation". Das heißt, sie werden beim folgenden 'apt-get -dselect-upgrade' entfernt es sei denn sie werden durch '--set-selections' vorher wieder auf 'install' gesetzt. Wenn du dich dann noch an den zurückgebliebenen Konfigurationsdateien störst, wirst du sie z.B. so los:

Code: Alles auswählen

dpkg --purge $(dpkg --get-selections | grep deinstall | awk '{print $1}')
Weshalb bei syssi scheinbar immer noch Pakete im Zustand 'purge' in der Liste auftauchen würde mich aber trotzdem noch interessieren.

syssi
Beiträge: 2951
Registriert: 24.12.2010 16:50:59
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Rheinland

Re: Squeeze: dpkg --get-selections, Stern funktioniert nicht

Beitrag von syssi » 07.11.2011 13:44:46

Bei mir ists ebenfalls

Code: Alles auswählen

$ dpkg --version
Debian »dpkg« Paketmanagement-Programm Version 1.15.8.11 (amd64).
die normale Version aus Squeeze. Aber es ist gut moeglich, dass das Problem bei mir liegt. Ich hatte etwas Aerger mit Paketen aus dem debian-multimedia Repository. Deshalb gab es zwei, drei Pakete mit dem Status "pi", welche aber in Wirklichkeit noch vorhanden waren. Ich habe sie nun sauber neuinstalliert. Damit tauchen bei mir nun auch keine Purge-Eintraege mehr auf.

kehler
Beiträge: 4
Registriert: 05.11.2011 17:42:35

Re: Squeeze: dpkg --get-selections, Stern funktioniert nicht

Beitrag von kehler » 08.11.2011 11:32:45

@r900, klar ich werde das mit dem 'dpkg --clear-selections' beim nächsten System ausprobieren.

Das ändert aber trotzdem nichts an der Tatsache, dass es nicht mehr so wie früher funktioniert. Man kann nun nicht mehr ein System 'klonen', so wie es im Debian Anwenderhandbuch beschrieben ist.

Benutzeravatar
r900
Beiträge: 1053
Registriert: 09.10.2011 20:06:11
Lizenz eigener Beiträge: GNU Free Documentation License
Wohnort: Stockholm

Re: Squeeze: dpkg --get-selections, Stern funktioniert nicht

Beitrag von r900 » 08.11.2011 23:49:15

@kehler: Ja, es funktioniert nicht mehr so wie früher. Da sind wir uns einig.
Das ändert aber auch nichts an der Tatsache, dass es nach wie vor möglich ist ein System zu duplizieren. Nämlich genau so wie ich es beschrieben habe. Das ist ein bisschen schwer "rauszuhören" ob du mit dem zweiten Punkt übereinstimmst.
Die Diskussion erreicht ja beinahe philosophische Ebenen :)

Der einzige Unterschied ist: Bei deiner Methode bleiben Pakete, die dem alten System nicht bekannt waren, auf dem neuen System installiert. Bei der Methode mit clear-selections fliegen die auch runter (sofern nicht essentiell).

Auf jeden Fall solltest du das als Bug bei dpkg melden, im changelog ist nämlich nichts über eine Änderung des Verhaltens dokumentiert.

Antworten