Wie liste ich die [verfügbaren] Versionen eines Pakets in Arch Linux auf?

Wie liste ich die [verfügbaren] Versionen eines Pakets in Arch Linux auf?

Ich möchte wissen, wie ich auflisten kannalleverfügbare Versionen (installiert sowie nicht installiert) eines bestimmten Pakets in Arch Linux, nicht nur die neueste Version. Ich kenne Gentoo ( eix <package>), CentOS/Suse/Redhat/... ( yum list <package>) und Debian ( apt-cache policy <package>). Ich weiß, dass ich das einmal in Arch gemacht habe, kann mich aber nicht erinnern, wie. Es wird angenommen, dass das gewünschte Paketnichtim Pacman-Cache.

Mit Arch habe ich Folgendes:

$ pacman -Ss gcc
core/gcc 6.2.1-1 (base-devel)
    The GNU Compiler Collection - C and C++ frontends
core/gcc-ada 6.2.1-1
    Ada front-end for GCC (GNAT)
core/gcc-fortran 6.2.1-1
...

Hier ist ein Beispiel dessen, was Sie mit Gentoo haben:

eix gcc
...
[I] sys-devel/gcc
     Available versions:  
     (2.95.3) ~*2.95.3-r10^s
     (3.3.6) ~3.3.6-r1^s
     (3.4.6) 3.4.6-r2^s
     (4.0.4) **4.0.4^s
     (4.1.2) 4.1.2^s
     (4.2.4) ~4.2.4-r1^s
     (4.3.6) 4.3.6-r1^s
     (4.4.7) 4.4.7^s
     (4.5.4) 4.5.4^s
     (4.6.4) 4.6.4^s
     (4.7)  4.7.4^s
     (4.8)  ~4.8.0^s ~4.8.1-r1^s ~4.8.2^s 4.8.3^s 4.8.4^s 4.8.5^s
     (4.9)  ~*4.9.0^s ~*4.9.1^s ~4.9.2^s ~4.9.3^s
     (5.1)  **5.1.0^s
     (5.2)  **5.2.0^s
       {altivec awt boundschecking cilk +cxx d debug doc fixed-point +fortran gcj go graphite hardened libssp mudflap multilib multislot +nls nopie nossp +nptl objc objc++ objc-gc +openmp regression-test +sanitize vanilla}
     Installed versions:  4.8.5(4.8)^s(10:57:39 02/09/15)(cxx fortran multilib nls nptl openmp sanitize -altivec -awt -debug -doc -fixed-point -gcj -go -graphite -hardened -libssp -mudflap -multislot -nopie -nossp -objc -objc++ -objc-gc -regression-test -vanilla)
     Homepage:            http://gcc.gnu.org/
     Description:         The GNU Compiler Collection
...

Hier sehen Sie alle verfügbaren Versionen von GCC, wobei die installierte Version in invertierter Darstellung hervorgehoben ist (hier nicht zu sehen). Auf dem System, auf dem ich dies ausgeführt habe, ist GCC in der Version 4.8.5 installiert.

Wie macht man das also noch einmal unter Arch Linux?


BEARBEITEN: Obwohl ich Arch nicht mehr auf meinem Rechner habe, denke ich, dass ich der Genauigkeit halber einige Details hinzufügen muss. Was ich damals wollte, war nicht, wie manHerabstufungein Paket. Was ich brauchte, war die Liste der verfügbaren Versionen eines Pakets, das ichAktualisierung, nicht nur dieneuesteVersion. Dies ist beispielsweise nützlich, wenn ich weiß, dass die neueste Version (zum Zeitpunkt des Upgrades) eines Pakets fehlerhaft ist und ich die vorherige ausprobieren möchte, wenn es sich zufällig auch um ein Upgrade der aktuell auf meinem System installierten Version handelt.

Antwort1

Eine einfache pacman -Ss <package>Anleitung zeigt Ihnen diese Informationen:

↪ LC_ALL=en_US.utf8 pacman -Ss evince
testing/evince 3.22.0+1+gc1dd9eb-1 (gnome) [installed: 3.20.1-2]
Document viewer (PDF, Postscript, djvu, tiff, dvi, XPS, SyncTex support with gedit, comics books (cbr,cbz,cb7 and cbt))
extra/evince 3.20.1-2 (gnome) [installed]
Document viewer (PDF, Postscript, djvu, tiff, dvi, XPS, SyncTex support with gedit, comics books (cbr,cbz,cb7 and cbt))

Update nach dem Beispiel in deiner Frage:

In Arch Linux können (sofern Sie keine inoffiziellen Repositories verwenden) immer nur zwei Versionen eines Pakets verfügbar sein: eine stabile Version in einem der Core-/Extra-/Community-/Multilib-Repositories und eine im Test.

Wenn Sie wirklich, wirklich, wirklich ältere Pakete installieren möchten, haben Sie mehrere Möglichkeiten, diese zu finden:

  1. Verwenden Sie dieArch Linux-Archivum alte Versionen der Pakete zu finden.

  2. Verwenden Sie eines der Tools aus demHerabstufungUm sie zu finden, verwenden Sie beispielsweise den Wiki-Artikel agetpkg -l gccoder downgrader gcc.

Bitte beachten Sie, dass Pakete in Arch Linux normalerweise keine Versionsgrenzen für ihre Abhängigkeiten angeben, weilTeilweise Upgrades werden nicht unterstützt, daher ist die Installation älterer Versionen einiger Pakete keine gute Idee.

Antwort2

Von demArch Linux Wiki(meine Hervorhebung):

Um alte und neue Versionen vonVerfügbare Pakete, heben Sie die Kommentierung der "VerbosePkgLists"Zeile auf in/etc/pacman.conf.

Weitere Informationen zur Installation bestimmter VersionenHier.

Bearbeiten:

So sieht es auf meinem Arch-System VerbosePkgListsohne Kommentar aus:

sudo pacman -Sy firefox
:: Synkroniserar paketdatabasen...
 core är senaste versionen
 extra är senaste versionen
 community är senaste versionen
löser beroenden...
Söker efter paket med konflikter...

Paket (1)      Gammal Version  Ny Version  Nettoskillnad  Hämtningsstorlek

extra/firefox  48.0.2-1        49.0.1-1        -0,35 MiB         39,82 MiB

Total hämtningsstorlek:     39,82 MiB
Total installationsstorlek:  89,81 MiB
Nettouppgraderingsstorlek:   -0,35 MiB

:: Fortsätt med installation? [Y/n] 

Mein System ist (offensichtlich) auf Schwedisch, aber " Gammal Version" bedeutet Old versionund " Ny Version" bedeutet New version. Und wie Sie oben sehen, werde ich [Y/n]vor der Installation mit einem aufgefordert.

verwandte Informationen