Paketliste nach Versionsnummern sortieren

classic Classic list List threaded Threaded
14 messages Options
Reply | Threaded
Open this post in threaded view
|

Paketliste nach Versionsnummern sortieren

Andreas Schmidt-15
Paketliste nach Versionsnummern sortieren

Hallo,

 

ich will /vac/cache/apt/archives aufräumen. Dazu möchte ich von allen Paketen, die installiert sind, alle Versionen bis auf die letzten beiden löschen:

 

***

dpkg -l | grep ^ii | awk '{print $2}' | while read i; do

    pac="`echo $i | awk -F: '{print $1}' `"

    suf="`echo $i | awk -F: '{print $2}'`"

 

    ls -1 ${pac}_*${suf}.deb 2>/dev/null | sed -e '1,2 d' >> DELETE

done

***

 

Das funktioniert in der Regel, aber nicht in Fällen wie diesem:

 

***

ls -1 /var/cache/apt/archives/gcc-6_*

/var/cache/apt/archives/gcc-6_6.4.0-10_amd64.deb

/var/cache/apt/archives/gcc-6_6.4.0-8_amd64.deb

/var/cache/apt/archives/gcc-6_6.4.0-9_amd64.deb

***

 

Hier kommt die Reihenfolge durcheinander, weil bei alphabetischer Sortierung gilt "10 < 8". Aussehen sollte es aber so:

 

***

/var/cache/apt/archives/gcc-6_6.4.0-10_amd64.deb

/var/cache/apt/archives/gcc-6_6.4.0-9_amd64.deb

/var/cache/apt/archives/gcc-6_6.4.0-8_amd64.deb

***

 

Wie stelle ich es an, dass ich die Liste korrekt sortiert bekomme?

 

Schönen Gruß

 

Andreas


attachment0 (201 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: [OT] Paketliste nach Versionsnummern sortieren

Jens Schüßler-2
* Andreas Schmidt <[hidden email]> wrote:
>
> Wie stelle ich es an, dass ich die Liste korrekt sortiert bekomme?
 
 "man ls"
 
 ~$ ls -1v gcc*
 gcc-6_6.4.0-8_amd64.deb
 gcc-6_6.4.0-9_amd64.deb
 gcc-6_6.4.0-10_amd64.deb
 
 ~$ ls -1vr gcc*
 gcc-6_6.4.0-10_amd64.deb
 gcc-6_6.4.0-9_amd64.deb
 gcc-6_6.4.0-8_amd64.deb

Reply | Threaded
Open this post in threaded view
|

Re: [OT] Paketliste nach Versionsnummern sortieren

Andreas Schmidt-15
Re: [OT] Paketliste nach Versionsnummern sortieren

Hallo, Jens!

 

On 12/04/2017 06:22:42 PM, Jens Schüßler wrote:

> * Andreas Schmidt <[hidden email]> wrote:

> >

> > Wie stelle ich es an, dass ich die Liste korrekt sortiert bekomme?

>

>  "man ls"

Das hatte ich gemacht, …

 

>  ~$ ls -1v gcc*

… aber diese Option hatte ich wohl übersehen. Jetzt funktioniert es jedenfalls.

 

Schönen Dank!

 

Andreas

 


attachment0 (201 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Paketliste nach Versionsnummern sortieren

Marc Haber-14
In reply to this post by Andreas Schmidt-15
On Mon, 04 Dec 2017 18:05:58 +0100, Andreas Schmidt <[hidden email]>
wrote:
>Wie stelle ich es an, dass ich die Liste korrekt sortiert bekomme?

Mach sie einfach weg. apt clean.

Grüße
Marc
--
-------------------------------------- !! No courtesy copies, please !! -----
Marc Haber         |   " Questions are the         | Mailadresse im Header
Mannheim, Germany  |     Beginning of Wisdom "     | http://www.zugschlus.de/
Nordisch by Nature | Lt. Worf, TNG "Rightful Heir" | Fon: *49 621 72739834

Reply | Threaded
Open this post in threaded view
|

Re: Paketliste nach Versionsnummern sortieren

Andreas Schmidt-15
Re: Paketliste nach Versionsnummern sortieren

Hallo, Marc,

 

On 12/04/2017 08:27:14 PM, Marc Haber wrote:

> On Mon, 04 Dec 2017 18:05:58 +0100, Andreas Schmidt <[hidden email]>

> wrote:

> >Wie stelle ich es an, dass ich die Liste korrekt sortiert bekomme?

>

> Mach sie einfach weg. apt clean.

das hätte den Vorteil, dass bei minimalem Aufwand maximal Platz gewonnen wird. Allerdings läuft auf dem Rechner Sid, und ich habe es schon öfter einmal erlebt, dass ein Paket nach dem Update nicht mehr mitspielen will -- und dass die vorherige Version nicht mehr per apt-get installierar ist.Selbst wenn sie noch im Archiv vorhanden sein sollte, müsste man sie noch einmal runterladen. Bei großen Sachen (TexLive z.B. hat gut 1.5 GB) kann es dauern, bis die über die lahme Leitung reinkommen sind.

 

Schönen Gruß

 

Andreas

 

 


attachment0 (201 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Paketliste nach Versionsnummern sortieren

Christian Knoke
In reply to this post by Andreas Schmidt-15
Andreas Schmidt schrieb am 04. Dez um 18:05 Uhr:

> Wie stelle ich es an, dass ich die Liste korrekt sortiert bekomme?

ich vermute, auch sort -g -r tut, was du willst.

Gruß
Christian

--
http://cknoke.de

Reply | Threaded
Open this post in threaded view
|

Re: Paketliste nach Versionsnummern sortieren

Uwe Kleine-König-7
Hallo,

On 12/05/2017 08:36 PM, Christian Knoke wrote:
> Andreas Schmidt schrieb am 04. Dez um 18:05 Uhr:
>>
>> Wie stelle ich es an, dass ich die Liste korrekt sortiert bekomme?
>
> ich vermute, auch sort -g -r tut, was du willst.

Ich weiß den Unterschied nicht spontan, aber vielleicht ist sort -V
besser als sort -g?

Liebe Grüße
Uwe



signature.asc (499 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Paketliste nach Versionsnummern sortieren

Andreas Schmidt-15
Re: Paketliste nach Versionsnummern sortieren

Hallo!

 

On 12/06/2017 10:06:58 AM, Uwe Kleine-König wrote:

> Hallo,

>

> On 12/05/2017 08:36 PM, Christian Knoke wrote:

> > Andreas Schmidt schrieb am 04. Dez um 18:05 Uhr:

> >>

> >> Wie stelle ich es an, dass ich die Liste korrekt sortiert bekomme?

> >

> > ich vermute, auch sort -g -r tut, was du willst.

>

> Ich weiß den Unterschied nicht spontan, aber vielleicht ist sort -V

> besser als sort -g?

In diesem Fall ist tatsächlich "ls -v" besser geeignet als "sort -g". Ein Beispiel:

 

Ausgangssituation -- "alphabetische" Sortierung

***

pc@debian:/tmp$ for i in `numrange 1..20`; do echo $i; done | sort

1

10

11

12

13

14

15

16

17

18

19

2

20

3

4

5

6

7

8

9

pc@debian:/tmp$

***

 

Verbesserung -- general numeric sort

***

pc@debian:/tmp$ for i in `numrange 1..20`; do echo $i; done | sort -g

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

pc@debian:/tmp$

***

 

Test mit Paketnamen (sort, sort -g)

***

pc@debian:/tmp$ for i in `numrange 1..20`; do touch dummy_0.37-${i}+b1_amd64.deb; done

pc@debian:/tmp$ ls dummy_0.37-* | sort

dummy_0.37-10+b1_amd64.deb

dummy_0.37-11+b1_amd64.deb

dummy_0.37-12+b1_amd64.deb

dummy_0.37-13+b1_amd64.deb

dummy_0.37-14+b1_amd64.deb

dummy_0.37-15+b1_amd64.deb

dummy_0.37-16+b1_amd64.deb

dummy_0.37-17+b1_amd64.deb

dummy_0.37-18+b1_amd64.deb

dummy_0.37-19+b1_amd64.deb

dummy_0.37-1+b1_amd64.deb

dummy_0.37-20+b1_amd64.deb

dummy_0.37-2+b1_amd64.deb

dummy_0.37-3+b1_amd64.deb

dummy_0.37-4+b1_amd64.deb

dummy_0.37-5+b1_amd64.deb

dummy_0.37-6+b1_amd64.deb

dummy_0.37-7+b1_amd64.deb

dummy_0.37-8+b1_amd64.deb

dummy_0.37-9+b1_amd64.deb

pc@debian:/tmp$ ls dummy_0.37-* | sort -g

dummy_0.37-10+b1_amd64.deb

dummy_0.37-11+b1_amd64.deb

dummy_0.37-12+b1_amd64.deb

dummy_0.37-13+b1_amd64.deb

dummy_0.37-14+b1_amd64.deb

dummy_0.37-15+b1_amd64.deb

dummy_0.37-16+b1_amd64.deb

dummy_0.37-17+b1_amd64.deb

dummy_0.37-18+b1_amd64.deb

dummy_0.37-19+b1_amd64.deb

dummy_0.37-1+b1_amd64.deb

dummy_0.37-20+b1_amd64.deb

dummy_0.37-2+b1_amd64.deb

dummy_0.37-3+b1_amd64.deb

dummy_0.37-4+b1_amd64.deb

dummy_0.37-5+b1_amd64.deb

dummy_0.37-6+b1_amd64.deb

dummy_0.37-7+b1_amd64.deb

dummy_0.37-8+b1_amd64.deb

dummy_0.37-9+b1_amd64.deb

pc@debian:/tmp$

***

 

Test mit Paketnamen (ls -v)

***

pc@debian:/tmp$ ls -v1 dummy_0.37-*

dummy_0.37-1+b1_amd64.deb

dummy_0.37-2+b1_amd64.deb

dummy_0.37-3+b1_amd64.deb

dummy_0.37-4+b1_amd64.deb

dummy_0.37-5+b1_amd64.deb

dummy_0.37-6+b1_amd64.deb

dummy_0.37-7+b1_amd64.deb

dummy_0.37-8+b1_amd64.deb

dummy_0.37-9+b1_amd64.deb

dummy_0.37-10+b1_amd64.deb

dummy_0.37-11+b1_amd64.deb

dummy_0.37-12+b1_amd64.deb

dummy_0.37-13+b1_amd64.deb

dummy_0.37-14+b1_amd64.deb

dummy_0.37-15+b1_amd64.deb

dummy_0.37-16+b1_amd64.deb

dummy_0.37-17+b1_amd64.deb

dummy_0.37-18+b1_amd64.deb

dummy_0.37-19+b1_amd64.deb

dummy_0.37-20+b1_amd64.deb

pc@debian:/tmp$

***

 

Laut `man ls` aktiviert die Option -v "natural sort of (version) numbers within text". Fazit: "sort -g" ist ideal, um reine Zahlenlisten numerisch zu sortieren, bringt aber nichts, wenn die Zahlen in Text eingebettet sind.

 

Beste Grüße

 

Andreas


attachment0 (201 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Paketliste nach Versionsnummern sortieren

Andreas Schmidt-15
In reply to this post by Uwe Kleine-König-7
Re: Paketliste nach Versionsnummern sortieren

Hallo, Uwe!

 

On 12/06/2017 10:06:58 AM, Uwe Kleine-König wrote:

> Ich weiß den Unterschied nicht spontan, aber vielleicht ist sort -V

> besser als sort -g?

Entschuldige bitte meinen Lesefehler: Ich hatte doch glatt bei "sort -V" nur auf die Option geachtet und das entsprechend als "vielleicht ist ls -v besser als sort -g" gelesen. Anscheinend liefern "ls -v" und "ls | sort -V" das gleiche Ergebnis. Zumindest steht in beiden Beschreibungen, dass die jeweilige Option "natural sort of (version) numbers within text" aktiviert. Am Ergebnis meines Tests ändert das aber nichts: Mit "sort -g" kann man Paketlisten nicht korrekt (Namen alphabetisch, Versionsnummern numerisch) sortieren, mit "sort -V " bzw. "ls -v" dagegen schon.

 

Beste Grüße

 

Andreas


attachment0 (201 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Paketliste nach Versionsnummern sortieren

Christian Knoke
In reply to this post by Andreas Schmidt-15
Andreas Schmidt schrieb am 06. Dez um 10:51 Uhr:
> On 12/06/2017 10:06:58 AM, Uwe Kleine-König wrote:
> > On 12/05/2017 08:36 PM, Christian Knoke wrote:
> > > Andreas Schmidt schrieb am 04. Dez um 18:05 Uhr:

> > >> Wie stelle ich es an, dass ich die Liste korrekt sortiert bekomme?
> > >
> > > ich vermute, auch sort -g -r tut, was du willst.
> >
> > Ich weiß den Unterschied nicht spontan, aber vielleicht ist sort -V
> > besser als sort -g?

in der Tat


> pc@debian:/tmp$ ls dummy_0.37-* | sort -g
[...]
> dummy_0.37-18+b1_amd64.deb
> dummy_0.37-19+b1_amd64.deb
> dummy_0.37-1+b1_amd64.deb
> dummy_0.37-20+b1_amd64.deb
> dummy_0.37-2+b1_amd64.deb
[...]

das ist richtig, sort -V hatte ich noch nicht entdeckt.

ich hatte ein paar Tests gemacht mit sort -g, aber es war schwer in
apt/archives geeignete Einträge zu finden, trotz >1000 Dateien.

Gruß
Christian

--
http://cknoke.de

Reply | Threaded
Open this post in threaded view
|

Re: Paketliste nach Versionsnummern sortieren

Marc Haber-14
In reply to this post by Andreas Schmidt-15
On Tue, 05 Dec 2017 09:01:27 +0100, Andreas Schmidt <[hidden email]>
wrote:

>On 12/04/2017 08:27:14 PM, Marc Haber wrote:
>> On Mon, 04 Dec 2017 18:05:58 +0100, Andreas Schmidt <[hidden email]>
>> wrote:
>> >Wie stelle ich es an, dass ich die Liste korrekt sortiert bekomme?
>>
>> Mach sie einfach weg. apt clean.
>das hätte den Vorteil, dass bei minimalem Aufwand maximal Platz  
>gewonnen wird. Allerdings läuft auf dem Rechner Sid, und ich habe es  
>schon öfter einmal erlebt, dass ein Paket nach dem Update nicht mehr  
>mitspielen will -- und dass die vorherige Version nicht mehr per  
>apt-get installierar ist.Selbst wenn sie noch im Archiv vorhanden sein  
>sollte, müsste man sie noch einmal runterladen. Bei großen Sachen  
>(TexLive z.B. hat gut 1.5 GB) kann es dauern, bis die über die lahme  
>Leitung reinkommen sind.

Die Frage ist, ob Du Dir diesen Riß geben möchtest, um _eventuell_ mal
eine halbe Stunde zu sparen.

Grüße
Marc
--
-------------------------------------- !! No courtesy copies, please !! -----
Marc Haber         |   " Questions are the         | Mailadresse im Header
Mannheim, Germany  |     Beginning of Wisdom "     | http://www.zugschlus.de/
Nordisch by Nature | Lt. Worf, TNG "Rightful Heir" | Fon: *49 621 72739834

Reply | Threaded
Open this post in threaded view
|

Re: Paketliste nach Versionsnummern sortieren

Christian Knoke
Marc Haber schrieb am 09. Dez um 09:24 Uhr:
> On Tue, 05 Dec 2017 09:01:27 +0100, Andreas Schmidt <[hidden email]>
> wrote:
> >On 12/04/2017 08:27:14 PM, Marc Haber wrote:
> >> On Mon, 04 Dec 2017 18:05:58 +0100, Andreas Schmidt <[hidden email]>
> >> wrote:
> >> >Wie stelle ich es an, dass ich die Liste korrekt sortiert bekomme?
> >>
> >> Mach sie einfach weg. apt clean.

> >das hätte den Vorteil, dass bei minimalem Aufwand maximal Platz  
> >gewonnen wird. Allerdings läuft auf dem Rechner Sid, und ich habe es  
> >schon öfter einmal erlebt, dass ein Paket nach dem Update nicht mehr  
> >mitspielen will -- und dass die vorherige Version nicht mehr per  
> >apt-get installierar ist.Selbst wenn sie noch im Archiv vorhanden sein  
> >sollte, müsste man sie noch einmal runterladen. Bei großen Sachen  
> >(TexLive z.B. hat gut 1.5 GB) kann es dauern, bis die über die lahme  
> >Leitung reinkommen sind.
>
> Die Frage ist, ob Du Dir diesen Riß geben möchtest, um _eventuell_ mal
> eine halbe Stunde zu sparen.

Das aufbewahren der alten Paketdateien hat zwei Vorteile, einmal ist man
nicht von einer funktionierenden Breitbandverbindung abhängig, und zweitens
gibt es auch heute noch in Deutschland zuviele Orte, die nicht wirklich
breitbandig angebunden sind.

Eher würde ich es mir sparen, die alten debs zu löschen, denn die wenigsten
Pakete werden innerhalb des distribution live cycle mehr als einmal
upgedated.

Gruß
Christian

>
> Grüße
> Marc

--
*** http://cknoke.de                                                *
*   Christian Knoke  -  Wurtleutetweute 49  -  25541 Brunsbüttel    *

Reply | Threaded
Open this post in threaded view
|

Re: Paketliste nach Versionsnummern sortieren

Andreas Schmidt-15
In reply to this post by Marc Haber-14
Re: Paketliste nach Versionsnummern sortieren

Hallo, Marc,

 

On 12/09/2017 09:24:55 AM, Marc Haber wrote:

> On Tue, 05 Dec 2017 09:01:27 +0100, Andreas Schmidt <[hidden email]>

> wrote:

> >On 12/04/2017 08:27:14 PM, Marc Haber wrote:

> >> On Mon, 04 Dec 2017 18:05:58 +0100, Andreas Schmidt <[hidden email]>

> >> wrote:

> >> >Wie stelle ich es an, dass ich die Liste korrekt sortiert bekomme?

> >>

> >> Mach sie einfach weg. apt clean.

> >das hätte den Vorteil, dass bei minimalem Aufwand maximal Platz

> >gewonnen wird. Allerdings läuft auf dem Rechner Sid, und ich habe es

> >schon öfter einmal erlebt, dass ein Paket nach dem Update nicht mehr

> >mitspielen will -- und dass die vorherige Version nicht mehr per

> >apt-get installierar ist.Selbst wenn sie noch im Archiv vorhanden sein

> >sollte, müsste man sie noch einmal runterladen. Bei großen Sachen

> >(TexLive z.B. hat gut 1.5 GB) kann es dauern, bis die über die lahme

> >Leitung reinkommen sind.

>

> Die Frage ist, ob Du Dir diesen Riß geben möchtest, um _eventuell_ mal

> eine halbe Stunde zu sparen.

bei großen Updates wie der bereits erwähnten TeXLive-Distribution ist es mit einer halben Stunde für den Download nicht getan, wenn man nur einen Downstream von ca. 250 KiB/s hat. :-)

 

Außerdem sehe ich es pragmatisch: Das Script funktioniert jetzt so, wie ich es haben wollte. Wenn das nächste Mal die Meldung kommt, dass der Platz auf der Partition mit /var/cache knapp wird, brauche ich es nur durchlaufen lassen. Ich habe also einmal etwas mehr Aufwand gehabt, der mir künftig erspart bleibt  -- und ganz nebenbei habe ich noch etwas Nützliches gelernt.  (Ich hatte vorher zwar selbst die Man-Pages durchgestöbert, aber bei "ls" und "sort" sind die entsprechenden Optionen leider so unglücklich benannt, dass ich dort gar nicht nachgesehen hatte: Bei den meisten Programmen bedeutet "-v" ja, dass sie "geschwätziger" bzw. "verbose" werden, während "-V" die Version ausgibt.)

 

In diesem Sinne noch einen schönen Abend!

 

Andreas


attachment0 (201 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Paketliste nach Versionsnummern sortieren

Andreas Schmidt-15
In reply to this post by Christian Knoke
Re: Paketliste nach Versionsnummern sortieren

Hallo, Christian!

 

On 12/09/2017 02:41:57 PM, Christian Knoke wrote:

> Das aufbewahren der alten Paketdateien hat zwei Vorteile, einmal ist man

> nicht von einer funktionierenden Breitbandverbindung abhängig, und zweitens

> gibt es auch heute noch in Deutschland zuviele Orte, die nicht wirklich

> breitbandig angebunden sind.

Richtig, das war der Grund, warum ich ncht gleich alles löschen wollte.

 

> Eher würde ich es mir sparen, die alten debs zu löschen, denn die wenigsten

> Pakete werden innerhalb des distribution live cycle mehr als einmal

> upgedated.

Wie gesagt: Es geht um Sid -- da lohnt es sich, die aktuellsten Versionen im Cache zu haben, um relativ einfach wieder die vorherige Version installieren zu können, wenn ein Paket nach einem Update nicht mehr funktioniert. Letztlich ist es ja auch für Bug-Reports ganz praktisch, wenn man einfach so zwischen alter und neuer Version wechseln kann, um irgendetwas auszuprobieren.

 

Schönen Abend noch!

 

Andreas


attachment0 (201 bytes) Download Attachment