Listen Sie alle Versionen eines Pakets auf

17

Gibt es ein Äquivalent zu diesem Befehl? yum list kernel-headers --showduplicatesauf Ubuntu mit apt-get, apt-cacheetc. Der obige Befehl listet verschiedene Versionen der Kernel-Header-RPM auf, die auf F20 / RHEL oder Installationen verfügbar sind.

Closet kann ich benutzen apt-cache showpkg, nicht sicher, ob es einen besseren Weg gibt?

$ apt-cache showpkg linux-image  
Package: linux-image  
Versions:   

Reverse Depends:  
  firmware-crystalhd,linux-image  
  systemtap,linux-image  
  fiaif,linux-image  
Dependencies:  
Provides:  
Reverse Provides:  
linux-image-3.13.0-27-lowlatency 3.13.0-27.50  
linux-image-3.13.0-27-generic 3.13.0-27.50  
linux-image-3.13.0-24-lowlatency 3.13.0-24.47  
linux-image-3.13.0-24-generic 3.13.0-24.47  
linux-image-3.13.0-24-lowlatency 3.13.0-24.46  
linux-image-3.13.0-24-generic 3.13.0-24.46  

Erwartung einer ähnlichen Ausgabe:

$ yum list kernel-headers --showduplicates
Loaded plugins: langpacks, refresh-packagekit
Installed Packages
kernel-headers.x86_64 3.11.10-301.fc20 @fedora
Available Packages
kernel-headers.x86_64 3.11.10-301.fc20 fedora 
kernel-headers.x86_64 3.14.4-200.fc20 updates

Dies würde mir helfen, einfach ein Downgrade oder Upgrade auf eine bestimmte Version durchzuführen.

askb
quelle
Meinten Sie, die Version aller installierten Pakete zusammen mit den Paketnamen aufzulisten?
Avinash Raj
Sowohl installiert als auch deinstalliert, ähnlich dem obigen Befehl:
askb
Am nächsten kam ich mitdpkg --list | grep linux-image
askb
dpkg --listZeigt die Details aller installierten Pakete an.
Avinash Raj

Antworten:

13

Sie haben den richtigen Befehl, außer dass linux-image kein richtiger Paketname ist.

$ apt-cache show linux-image
N: Can't select versions from package 'linux-image' as it is purely virtual
N: No package found

apt-cache showpkgsollte jedoch für echte Pakete funktionieren. z.B

$ apt-cache showpkg lyx
Package: lyx
Versions: 
2.1.0-1~trusty~ppa4 (/var/lib/apt/lists/ppa.launchpad.net_lyx-devel_release_ubuntu_dists_trusty_main_binary-amd64_Packages) (/var/lib/dpkg/status)
 Description Language: 
                 File: /var/lib/apt/lists/ppa.launchpad.net_lyx-devel_release_ubuntu_dists_trusty_main_binary-amd64_Packages
                  MD5: 8c75d53cfd29c5b19c2172cb07b7fe9a

2.0.6-1build1 (/var/lib/apt/lists/ftp.iinet.net.au_pub_ubuntu_dists_trusty_universe_binary-amd64_Packages)

Wenn Sie alle Versionen von linux-image-like-Paketen anzeigen möchten , können Sie einfach eine Suche durchführen, z

$ apt-cache search linux-image | grep '^linux-image'

Das Problem ist, dass die verschiedenen Versionen von kernel ( linux-image) in einzelnen Paketen enthalten sind und je nach Version unabhängig voneinander benannt werden. Sie sind nicht alle Versionen des einen Pakets.


BEARBEITEN

Hier werden alle verfügbaren Pakete aufgelistet. Um zu zeigen, welche installiert ist, können Sie verwenden dpkg -l. z.B

$ dpkg -l lyx
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                                           Version                      Architecture                 Description
+++-==============================================-============================-============================-==================================================================================================
ii  lyx                                            2.1.0-1~trusty~ppa4          amd64                        Document Processor

EDIT2

Eine andere Möglichkeit, Informationen über verschiedene, aber ähnlich benannte Pakete (z. B. linux-image*) abzurufen, ist die Verwendung von aptitude search.

$ aptitude search linux-image

Sie können auch mit grep filtern, indem Sie diese umständliche Syntax verwenden , um einen Aptitude-Fehler / eine Aptitude-Funktion zu umgehen.

$ aptitude -w $COLUMNS search linux-image | grep '32 bit'

Ein iin der ersten Spalte sagt Ihnen, dass es bereits installiert ist. Siehe man aptitudefür die anderen Charaktere.

Sparhawk
quelle
Die Ausgabe, die ich bekomme, yumzeigt deutlich, was installiert, deinstalliert und verfügbar ist.
Askb
Okay. Sie sollten dies wahrscheinlich zu Ihrer Frage hinzufügen, da viele Ubuntu-Benutzer (einschließlich meiner) nicht wissen, welche Ausgabe yumerzeugt wird. Ich habe mehr Informationen in der Antwort hinzugefügt.
Sparhawk
@askb Danke für die Bearbeitung. Wie in meiner Antwort angedeutet, besteht ein Teil des Problems darin, dass Ubuntu den Namen jedes Kernels je nach Version ändert, während Fedora unabhängig von der Version den gleichen Namen verwendet. Ersteres hat den Vorteil, dass Sie mehrere Versionen gleichzeitig installieren und bei Problemen auf eine alte Version von grub zurücksetzen können. In jedem Fall sollte die apt-cache searchStrategie funktionieren.
Sparhawk
Vielen Dank für die Antwort. Bei rpmbasierten Installationen sind möglicherweise mehrere Kernel-Versionen installiert, solange die Versionen unterschiedlich sind. Dies gilt jedoch normalerweise nicht für alle Pakete bei einer rpm-basierten Installation oder bei einer nicht einfachen AFAIK. Allerdings versuche ich immer noch eine saubere Art und Weise zu finden, wo ich bekommen Details sowohl die installiert und verfügbar von (in repos) pkgs auf ubuntu, soweit apt-cache search Idee geht, seine für nur lokale Pakete und schaut nicht in die repos . Das Nächste, was ich bekommen konnte, war mitshowpkg
askb
@askb Nein, apt-cache searchsucht in Repos, nicht lokal. AFAIK es nicht Sie lokal installierten Pakete sagen nichts. Das brauchst du laut dpkgmeiner ersten Bearbeitung. Ich habe in einer zweiten Bearbeitung einen einzigen Befehl hinzugefügt, der auf Kernel anwendbar ist.
Sparhawk
8

Ich glaube, Sie suchen nach dem Befehl madison in apt-cache:

apt-cache madison chromium-browser

Ausgabe:

chromium-browser | 50.0.2661.102-0ubuntu0.14.04.1.1117 | http://archive.ubuntu.com/ubuntu/ trusty-updates/universe amd64 Packages
chromium-browser | 50.0.2661.102-0ubuntu0.14.04.1.1117 | http://security.ubuntu.com/ubuntu/ trusty-security/universe amd64 Packages
chromium-browser | 34.0.1847.116-0ubuntu2 | http://archive.ubuntu.com/ubuntu/ trusty/universe amd64 Packages

Zeigt eine Kurzübersicht aller verfügbaren Versionen und des Repos, von dem sie stammen. Dies ist großartig, wenn Sie einen PPA für ein Paket verwenden und den Unterschied in den Versionen zwischen dem PPA und den Haupt-Repos überprüfen möchten.

Weitere Infos zu Madison auf der Manpage:

madison pkg...
           apt-cache's madison command attempts to mimic the output format and a subset of the functionality of the Debian archive management tool,
           madison. It displays available versions of a package in a tabular format. Unlike the original madison, it can only display information
           for the architecture for which APT has retrieved package lists (APT::Architecture).
Asynkopierung
quelle
0

Sie können Folgendes dpkgverwenden, um alle installierten Pakete anzuzeigen:

$ dpkg --get-selections | grep -v deinstall | grep linux-image

Das Linux-Kernel-Metapaket wird unter Debian aufgerufen linux-image-generic.

$ apt-cache madison linux-image-generic

Sie erhalten alle Versionen, die in APT-Repositorys verfügbar sind (nicht unbedingt auf Ihrem System installiert).

Tombart
quelle
-1

Haben Sie versucht, einen alten Kernel zu booten, und geben Sie im Terminal Folgendes ein:

showpkg kernel-header.list

und ich denke, es könnte im Boot-Verzeichnis sein, und der ganze Kernel liegt dort, und dies könnte gut funktionieren.

und dann können Sie einfach eingeben, um dies im Terminal herunterzustufen:

 sudo apt-get -y --force-yes purge linux-shim-efi shim-amd64-generic linux-shim-amd64 

und es könnte gut so funktionieren.

Michael
quelle
Ich bin mir nicht sicher, was das bedeutet. Es gibt keine /dirctory, /directoryoder /grubauf meinem System, und keine Datei genannt kernel-headers.list. Wenn Sie eine lokale Datei lesen, werden Sie wahrscheinlich auch nicht wissen, welche Remote-Versionen verfügbar sind. -1 (aber ich werde zurückkehren, wenn Sie klarstellen können).
Sparhawk
Ich meine wahrscheinlich in / Boot-Verzeichnis, wo die Grub-Datei liegt.
Michael
Ich habe keine Datei an /boot/kernel-headers.list. Sie können jedoch eine Liste der installierten Kernel ableiten (z. B.) /boot/grub/grub.cfg, aber auch dies sind nur die lokal installierten Kernel, nicht die Remote-Versionen in den Repos.
Sparhawk
Ich weiß vielleicht nicht, dass es die Erweiterung .cfg / boot ist
Michael
Ich habe alle Dateien von durchgesehen find /boot -name '*.cfg', aber keine enthält Informationen über Remote-Versionen des Kernels.
Sparhawk