Mailinglist Archive: opensuse-de (2920 mails)
| < Previous | Next > |
Re: Script mit rpm, diff, etc.
- From: Andreas Winkelmann <ml@xxxxxxxxxxxxxx>
- Date: Thu, 24 Mar 2005 23:30:28 +0100
- Message-id: <200503242330.28752.ml@xxxxxxxxxxxxxx>
Am Donnerstag, 24. März 2005 23:13 schrieb Al Bogner:
> > > Ich möchte nicht alle rpms von Host A und B, sondern die
> > > Differenz. Die Anwendung ist folgende:
> > >
> > > Host A hat verschiedenste rpms.
> > >
> > > Host B wurde neu installiert und enthält eventuell Pakete, die
> > > A nicht hat, aber Host B soll auf jeden Fall alle Pakete von
> > > Host A haben. Daher meine Idee mit diff, aber das muß auch
> > > nachbearbeitet werden.
> >
> > Liste 1:
> >
> > paket1
> > paket3
> > paket2
> >
> > Liste 2:
> >
> > paket2
> > paket1
> >
> > Nach cat:
> >
> > paket1
> > paket3
> > paket2
> > paket2
> > paket1
> >
> > Nach sort:
> >
> > paket1
> > paket1
> > paket2
> > paket2
> > paket3
> >
> > Nach uniq -u:
> >
> > paket3
>
> Für die Praxis ist das schon ganz brauchbar. Wenn ich es aber nun
> richtig verstanden habe, dann wird ein Paket, dass bei Host B
> gelistet ist und bei A nicht, nun wieder gelistet, da ja alle
> Pakete zusammen kommen und dann uniq -u die Pakete listet, die nur
> 1x vorkommen. D.h. mit dieser Liste würde rpm meckern, dass das
> Paket bereits vorhanden ist, oder?
Yep. Um dies zu vermeiden könntest Du die Ausgabe vor dem tr nochmal gegen die
Ursprungsliste von Host-A laufen lassen. Nur diesmal alle Ausgeben, die mehr
als einmal vorkommen (uniq -d)/(man uniq ;-)).
cat diff.txt hosta.txt | sort | uniq -d | tr ...
> Zusatzfrage, kann man im Nachhinein aus der ursprgl. geposteten
> Beispielliste den Dateinamen noch extrahieren? Ich habe nämlich nur
> mehr die Ausgabe von rpm -qa. Wenn es nicht geht, ist es aber auch
> kein großes Problem. Ich habe noch einen weiteren ähnlichen Rechner,
> bei dem ich die formatierte Abfrage machen kann.
Ist schwierig, da man bei einigen Paketen den Namen nicht sauber von der
Version trennen kann. Auch in der Version kommen schonmal Buchstaben vor.
--
Andreas
> > > Ich möchte nicht alle rpms von Host A und B, sondern die
> > > Differenz. Die Anwendung ist folgende:
> > >
> > > Host A hat verschiedenste rpms.
> > >
> > > Host B wurde neu installiert und enthält eventuell Pakete, die
> > > A nicht hat, aber Host B soll auf jeden Fall alle Pakete von
> > > Host A haben. Daher meine Idee mit diff, aber das muß auch
> > > nachbearbeitet werden.
> >
> > Liste 1:
> >
> > paket1
> > paket3
> > paket2
> >
> > Liste 2:
> >
> > paket2
> > paket1
> >
> > Nach cat:
> >
> > paket1
> > paket3
> > paket2
> > paket2
> > paket1
> >
> > Nach sort:
> >
> > paket1
> > paket1
> > paket2
> > paket2
> > paket3
> >
> > Nach uniq -u:
> >
> > paket3
>
> Für die Praxis ist das schon ganz brauchbar. Wenn ich es aber nun
> richtig verstanden habe, dann wird ein Paket, dass bei Host B
> gelistet ist und bei A nicht, nun wieder gelistet, da ja alle
> Pakete zusammen kommen und dann uniq -u die Pakete listet, die nur
> 1x vorkommen. D.h. mit dieser Liste würde rpm meckern, dass das
> Paket bereits vorhanden ist, oder?
Yep. Um dies zu vermeiden könntest Du die Ausgabe vor dem tr nochmal gegen die
Ursprungsliste von Host-A laufen lassen. Nur diesmal alle Ausgeben, die mehr
als einmal vorkommen (uniq -d)/(man uniq ;-)).
cat diff.txt hosta.txt | sort | uniq -d | tr ...
> Zusatzfrage, kann man im Nachhinein aus der ursprgl. geposteten
> Beispielliste den Dateinamen noch extrahieren? Ich habe nämlich nur
> mehr die Ausgabe von rpm -qa. Wenn es nicht geht, ist es aber auch
> kein großes Problem. Ich habe noch einen weiteren ähnlichen Rechner,
> bei dem ich die formatierte Abfrage machen kann.
Ist schwierig, da man bei einigen Paketen den Namen nicht sauber von der
Version trennen kann. Auch in der Version kommen schonmal Buchstaben vor.
--
Andreas
| < Previous | Next > |