Results 1 to 4 of 4

Thread: Packages reinstallieren

  1. #1

    Default Packages reinstallieren

    Hallo

    Bei der Beseitigung eines python-Pakets ohne uninstaller habe ich versehentlich den Pfad /usr/share/man/man1 gelöscht. Mein Backup ist leider schon etwas älter und ich habe zwischenzeitlich sehr viel am System gemacht um duplicity und pyload einsetzen zu können.

    Kann ich mit zypper oder rpm alle Pakete auflisten und dann mit --force neuinstallieren, die eine Datei unter /usr/share/man/man1 schreiben? Wie muß ich da vorgehen?

    Viele Grüße
    Stefan

  2. #2

    Default Re: Packages reinstallieren

    Quote Originally Posted by smschumacher View Post
    Kann ich mit zypper oder rpm alle Pakete auflisten und dann mit --force neuinstallieren, die eine Datei unter /usr/share/man/man1 schreiben? Wie muß ich da vorgehen?
    Das sollte eine Liste aller installierten Pakete ergeben, die eine Datei in /usr/share/man/man1 enthalten:
    Code:
    zypper se -f /usr/share/man/man1
    Zur Information:
    "se" bedeutet "search", und -f "--file-list"
    Von "zypper help se":
    Code:
    -f, --file-list            Suche nach einem Treffer in der Dateiliste der Pakete.
    Das ergibt allerdings eine sehr lange Liste (>800 Pakete bei mir), die alle händisch neu zu installieren, wird wohl etwas mühsam.
    Die Ausgabe schaut etwa wie folgt aus:
    Code:
    Daten des Repositories laden ...
    Installierte Pakete lesen ...
    
    S | Name                         | Zusammenfassung                        | Typ  
    --+------------------------------+----------------------------------------+------
    i | BasiliskII                   | 68k Macintosh emulator                 | Paket
    i | DirectFB                     | Grafikbibliothek für Framebuffer-Ger-> | Paket
    ...
    Mir ist jetzt leider keine zypper Option bekannt, die nur eine Liste von Paketnamen liefern würde (mit '-q' kannst du allerdings alle zusätzlichen Ausgaben unterdrücken, wie z.B. das "]Daten des Repositories laden ...").
    Du müsstest also daraus irgendwie die Namensspalte extrahieren, z.B. mit awk.

    Es gibt auch die Möglichkeit, mit '-x' die Liste als XML auszugeben, falls du das bevorzugst, aber auch hier sehe ich leider keine Möglichkeit, das dann automatisch zypper zu übergeben.

    Ach ja, und eine Paket-Neuinstallation erzwingen kannst du mir "zypper in -f" (oder statt '-f' '--force'), aber deiner Frage nach zu urteilen, weißt du das eh...
    Last edited by wolfi323; 24-Mar-2014 at 01:34.

  3. #3

    Default Re: Packages reinstallieren

    Quote Originally Posted by wolfi323 View Post
    Du müsstest also daraus irgendwie die Namensspalte extrahieren, z.B. mit awk.
    PS:
    Ist eigtl. ganz einfach:
    Code:
    awk '{print $3}'
    Folgendes sollte also eine Liste der Paketnamen ergeben:
    Code:
    zypper -q se -f /usr/share/man/man1 | tail -n +4 | awk '{print $3}'
    (das "tail" ist drin, um die ersten zwei Zeilen mit der Tabellenüberschrift zu entfernen)

    Die solltest du folgendermaßen neu installieren können:
    Code:
    for i in "`zypper -q se -f /usr/share/man/man1 | tail -n +4 | awk '{print $3}'`"; do zypper in -f $i; done
    Geht vielleicht auch einfacher/besser, aber das sollte zumindest funktionieren...

  4. #4

    Default Re: Packages reinstallieren

    Hat funktioniert, vielen Dank!

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •