Liste toutes les versions d'un package

17

Existe-t-il un équivalent de cette commande; yum list kernel-headers --showduplicatessur Ubuntu avec apt-get, apt-cacheetc. La commande ci-dessus répertorie les différentes versions du rpm des en-têtes de noyau disponibles sur F20 / RHEL ou les installations.

Placard que je peux utiliser apt-cache showpkg, je ne sais pas s'il y a une meilleure façon?

$ 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  

Attente d'une sortie similaire:

$ 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

Cela m'aiderait simplement à rétrograder ou à mettre à niveau vers une version spécifique.

askb
la source
vouliez-vous dire répertorier la version de tous les packages installés ainsi que les noms des packages?
Avinash Raj
Les deux installés et désinstallés, similaires à la commande ci-dessus:
askb
Le plus proche que j'ai pu utiliser étaitdpkg --list | grep linux-image
askb
dpkg --listaffiche les détails de tous les packages installés.
Avinash Raj

Réponses:

13

Vous avez la bonne commande, sauf que linux-image n'est pas un vrai nom de package.

$ 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 showpkgdevrait fonctionner pour de vrais packages, cependant. par exemple

$ 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)

Si vous voulez voir toutes les versions de linux-imagepackages similaires, vous pouvez simplement faire une recherche, par exemple

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

Le problème est que les différentes versions du noyau ( linux-image) sont dans des packages individuels, et nommées indépendamment en fonction de la version. Ce ne sont pas toutes les versions du même package.


ÉDITER

Ceci répertorie tous les packages disponibles. Pour montrer lequel est installé, vous pouvez utiliser dpkg -l. par exemple

$ 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

Une autre façon d'obtenir des informations sur des packages différents mais portant des noms similaires (par exemple linux-image*) consiste à utiliser aptitude search.

$ aptitude search linux-image

Vous pouvez également filtrer avec grep en utilisant cette syntaxe maladroite pour contourner un bug / fonctionnalité d'aptitude.

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

Un idans la première colonne vous indique qu'il est déjà installé. Voir man aptitudepour les autres personnages.

Sparhawk
la source
la sortie que j'obtiens yummontre clairement ce qui est installé, désinstallé et disponible.
askb
D'accord. Vous devriez probablement ajouter cela à votre question, car de nombreux utilisateurs d'Ubuntu (y compris moi-même) ne savent pas ce que la sortie yumproduit. J'ai ajouté plus d'informations dans la réponse.
Sparhawk
@askb Merci pour la modification. Comme mentionné dans ma réponse, je pense qu'une partie du problème est qu'Ubuntu change le nom de chaque noyau en fonction de la version, alors que Fedora utilise le même nom quelle que soit la version. L'un des avantages de la première est que vous pouvez avoir plusieurs versions installées à la fois et revenir à une ancienne version sur grub en cas de problème. Dans tous les cas, la apt-cache searchstratégie devrait fonctionner.
Sparhawk
merci pour la réponse, avec les rpminstallations basées, il est possible que plusieurs versions du noyau soient installées tant que les versions sont différentes, mais cela n'est normalement pas applicable à tous les paquets dans une installation basée sur rpm ou pas simplement AFAIK. Cependant, j'essaie toujours de trouver un moyen propre, où j'ai des détails sur les paquets installés et disponibles (dans les référentiels) sur Ubuntu, en ce qui concerne l' apt-cache search idée , il ne s'applique qu'aux packages locaux et ne regarde pas dans le référentiel. . Le plus proche que j'ai pu avoir était avecshowpkg
askb
@askb Non, apt-cache searchregarde dans les dépôts, pas localement. AFAIK, il ne vous dit rien sur les packages installés localement. Vous en avez besoin dpkg, selon ma première édition. J'ai ajouté une deuxième modification qui est une seule commande applicable aux noyaux.
Sparhawk
8

Je pense que vous recherchez la commande madison dans apt-cache:

apt-cache madison chromium-browser

Production:

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

Affiche une référence rapide de toutes les versions disponibles et du référentiel dont elles proviennent. C'est très bien si vous utilisez un PPA pour un package et que vous souhaitez vérifier la différence de versions entre le PPA et les dépôts principaux.

Plus d'informations sur madison depuis la page de manuel:

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).
asyncopation
la source
0

Vous pouvez utiliser dpkgpour voir tous les packages installés:

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

Le méta-package du noyau Linux est appelé sur Debian linux-image-generic.

$ apt-cache madison linux-image-generic

vous donnera toutes les versions disponibles dans les dépôts APT (pas nécessairement installés sur votre système).

Tombart
la source
-1

Avez-vous essayé de démarrer un ancien noyau et entrez dans le terminal:

showpkg kernel-header.list

et je pense que cela pourrait être dans le répertoire de démarrage, et tout le noyau s'y trouve, et cela pourrait bien fonctionner.

puis vous pouvez simplement taper pour rétrograder cela dans le terminal:

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

et cela pourrait bien fonctionner de cette façon.

Michael
la source
Je ne sais pas ce que cela signifie. Il n'y a pas /dirctory, /directoryou /grubsur mon système, et aucun fichier appelé kernel-headers.list. De plus, la lecture d'un fichier local ne vous dira probablement pas quelles versions distantes sont disponibles. -1 (mais je reviendrai si vous pouvez clarifier).
Sparhawk
Je veux dire probablement dans le répertoire / boot où se trouve le fichier grub.
Michael
Je n'ai pas de dossier à /boot/kernel-headers.list. Cependant, vous pouvez dériver une liste des noyaux installés à partir (par exemple) /boot/grub/grub.cfg, mais encore une fois, ce ne sont que les noyaux installés localement, pas les versions distantes dans le référentiel.
Sparhawk
Je ne fais peut-être pas que ce soit l'extension .cfg / boot
Michael
J'ai parcouru tous les fichiers de find /boot -name '*.cfg', mais aucun d'entre eux ne contient d'informations sur les versions distantes du noyau.
Sparhawk