Wie eine neue "Packetreferenz" mit apt-get erstell

Du kommst mit der Installation nicht voran oder willst noch was nachfragen? Schau auch in den "Tipps und Tricks"-Bereich.
Antworten
clipboard
Beiträge: 32
Registriert: 08.08.2003 13:53:44

Wie eine neue "Packetreferenz" mit apt-get erstellen?

Beitrag von clipboard » 12.01.2005 12:17:34

Hallo zusammen

Ich hatte einen Plattencrash. Dabei hat es mir in /var/lib/dpkg die Dateien available, available-old und status ins Nirvana geschickt. Als Backup habe ich natürlich nur ein ca. 3 Monate alte Image ;-) (nicht hauen, bitte!)

mit touch available und touch status habe ich die Dateien mal neu erstellt. Aber Debian weiss nun nicht mehr, was es installiert hat.

Es sollte doch möglich sein, ab /var/cache/apt (weiss nicht mehr genau auswendig). Jedenfalls dort wo die Deb-Packete liegen eine neue Datei erstellen zu können. Aber wie? Ich habe dort so ziemlich alle, auch alte deb-Packete liegen.

Hat mir jemend einen Tipp?
Danke und Gruss
Fabian

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Joghurt » 12.01.2005 12:20:14

In /var/backup sollte eigentlich ein Backup der status-Datei sein, available kann ruhig leer sein.

clipboard
Beiträge: 32
Registriert: 08.08.2003 13:53:44

Beitrag von clipboard » 12.01.2005 12:26:49

Danke! In /var/backup muss ich noch schauen.
Aber, habe ich das falsch verstanden, die status wird verändert, wenn ich ein apt-get update mache? Wo wird vermerkt, welche Packete denn installiert sind - das ist doch nicht die status?

Gruss
Fabian

Benutzeravatar
Joghurt
Beiträge: 5244
Registriert: 30.01.2003 15:27:31
Wohnort: Hamburg
Kontaktdaten:

Beitrag von Joghurt » 12.01.2005 12:50:14

clipboard hat geschrieben:Danke! In /var/backup muss ich noch schauen.
Aber, habe ich das falsch verstanden, die status wird verändert, wenn ich ein apt-get update mache? Wo wird vermerkt, welche Packete denn installiert sind - das ist doch nicht die status?
update ändert die "availables", also die Liste von Paketen, die es gibt.
Normalerweise sollte status die einzige Datei sein, die angibt, welche Pakete installiert sind. Falls du aptitude installiert hast, und aptitude es noch weiss, müsste es auch darüber gehen. Ansonsten kannst du als letzte Möglichkeit versuchen, alle Pakete, die in /var/lib/dpkg/info verzeichnet sind, als installiert zu markieren; allerdings wirst du dann auch die Pakete drin haben, die removed, aber nicht gepurged wurden.

Code: Alles auswählen

#!/bin/bash
ls /var/lib/dpkg/info/*list | while read file; do
  file=$(basename $file)
  echo -e "${file/.list/}\t\t\t\t\tinstall"
done
Und dann ein

Code: Alles auswählen

SKRIPT | dpkg --set-selections
ist aber eine Notlösung.

EDIT: Skript korrigiert

clipboard
Beiträge: 32
Registriert: 08.08.2003 13:53:44

Beitrag von clipboard » 12.01.2005 15:32:54

Vielen Dank für deine ausführliche Antwort!

Werde das dann probieren. [zitter] ;-)

Gruss
Fabian

clipboard
Beiträge: 32
Registriert: 08.08.2003 13:53:44

Beitrag von clipboard » 12.01.2005 20:21:54

So ich habe beides ausprobiert, leider ohne Erfolg. Ich bekomme jetzt als Fehler:

Code: Alles auswählen

Nach dem Auspacken werden 422kB Plattenplatz zusätzlich benutzt.
(Lese Datenbank ... dpkg: Fehler beim Bearbeiten von /var/cache/apt/archives/dpkg_1.10.26_i386.deb (--unpack):
 files list file for package `language-env' is missing final newline
Wobei die Sprache ansonsten tadellos funktioniert. Der Fehler kommt bei jedem versuchten Packet. Ich denke das "Herzstück" von Debian hat eine Herzkrise.
Falls nicht grad jemand einen grandiosen Tipp dafür hat, muss ich wohl oder übel neu aufsetzen. bzw. mein Baseimage zurückholen.

Gruss
Fabian

Antworten