Elencare tutte le versioni di un pacchetto


17

Esiste un equivalente di questo comando; yum list kernel-headers --showduplicatessu Ubuntu con apt-get, apt-cacheecc. Il comando sopra elenca le varie versioni degli header del kernel rpm disponibili su F20 / RHEL o installazioni.

Armadio che posso usare apt-cache showpkg, non sono sicuro che esista un modo migliore?

$ 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  

Aspettando risultati simili:

$ 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

Questo mi aiuterebbe semplicemente a effettuare un downgrade o l'aggiornamento a una versione specifica.


intendevi elencare la versione di tutti i pacchetti installati insieme ai nomi dei pacchetti?
Avinash Raj,

Sia installato che disinstallato, simile al comando sopra:
askb

Il più vicino che potevo ottenere era usaredpkg --list | grep linux-image
askb

dpkg --listmostra i dettagli di tutti i pacchetti installati.
Avinash Raj,

Risposte:


13

Hai il comando corretto, tranne che linux-image non è un vero nome del pacchetto.

$ 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 showpkgdovrebbe funzionare per pacchetti reali, comunque. per esempio

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

Se vuoi vedere tutte le versioni di linux-imagepacchetti simili, puoi semplicemente fare una ricerca, ad es

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

Il problema è che le diverse versioni del kernel ( linux-image) sono in singoli pacchetti e denominate indipendentemente in base alla versione. Non sono tutte le versioni di un pacchetto.


MODIFICARE

Questo elenca tutti i pacchetti disponibili. Per mostrare quale è installato, è possibile utilizzare dpkg -l. per esempio

$ 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

Un altro modo per ottenere informazioni su pacchetti diversi ma con nomi simili (ad es. linux-image*) È usare aptitude search.

$ aptitude search linux-image

Puoi anche filtrare con grep usando questa sintassi scomoda per aggirare un bug / funzionalità aptitude.

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

Un inella prima colonna ti dice che è già installato. Vedi man aptitudeper gli altri personaggi.


l'output che ottengo yummostra chiaramente ciò che è installato, disinstallato e disponibile.
Chiedere

Va bene. Probabilmente dovresti aggiungere questo alla tua domanda, dal momento che molti utenti di Ubuntu (incluso me stesso) non sanno cosa yumproduce l' output . Ho aggiunto ulteriori informazioni nella risposta.
Sparhawk,

@askb Grazie per la modifica. Come accennato nella mia risposta, penso che parte del problema sia che Ubuntu cambia il nome di ciascun kernel in base alla versione, mentre Fedora usa lo stesso nome indipendentemente dalla versione. Un vantaggio del primo è che puoi avere più versioni installate contemporaneamente e ripristinare a una versione precedente su grub se ci sono problemi. In ogni caso, la apt-cache searchstrategia dovrebbe funzionare.
Sparhawk,

grazie per la risposta, con le rpminstallazioni basate probabilmente le sue diverse versioni del kernel sono installate fintanto che le versioni sono diff, ma questo non è normalmente applicabile a tutti i pacchetti nell'installazione basata su rpm o non direttamente AFAIK. Tuttavia, sto ancora cercando di trovare un modo pulito, in cui ho i dettagli dei pkg installati e disponibili (in repository) su Ubuntu, per quanto riguarda l' apt-cache search idea , è applicabile solo ai pacchetti locali e non esamina i repository . Il più vicino che potevo ottenere era conshowpkg
askb

@askb No, apt-cache searchguarda nei repository, non localmente. AFAIK non ti dice nulla sui pacchetti installati localmente. Ne hai bisogno dpkg, come per la mia prima modifica. Ho aggiunto una seconda modifica che è un singolo comando applicabile ai kernel.
Sparhawk,

8

Penso che tu stia cercando il comando madison in apt-cache:

apt-cache madison chromium-browser

Produzione:

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

Mostra un riferimento rapido di tutte le versioni disponibili e del repository da cui provengono. Questo è ottimo se si utilizza un PPA per un pacchetto e si desidera verificare la differenza nelle versioni tra PPA e repository principali.

Maggiori informazioni su madison dalla pagina man:

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

0

Puoi usare dpkgper vedere tutti i pacchetti installati:

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

Il meta-pacchetto del kernel Linux è chiamato su Debian linux-image-generic.

$ apt-cache madison linux-image-generic

ti fornirà tutte le versioni disponibili nei repository APT (non necessariamente installati sul tuo sistema).


-1

Hai provato ad avviare un vecchio kernel e nel terminale inserisci:

showpkg kernel-header.list

e penso che potrebbe essere nella directory di avvio, e tutto il kernel si trova lì, e questo potrebbe funzionare bene.

e quindi puoi semplicemente digitare per effettuare il downgrade nel terminale:

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

e potrebbe funzionare bene in questo modo.


Non sono sicuro di cosa significhi. Non c'è /dirctory, /directoryo /grubsul mio sistema, e nessun file chiamato kernel-headers.list. Inoltre, la lettura di un file locale probabilmente non ti dirà quali versioni remote sono disponibili. -1 (ma tornerò se è possibile chiarire).
Sparhawk,

Probabilmente intendo nella directory / boot in cui si trova il file grub.
Michael,

Non ho file a /boot/kernel-headers.list. Tuttavia, è possibile derivare un elenco di kernel installati da (ad es.) /boot/grub/grub.cfg, Ma di nuovo, si tratta solo dei kernel installati localmente, non delle versioni remote nei repository.
Sparhawk,

Forse non faccio che sia l'estensione .cfg / boot
Michael,

Ho esaminato tutti i file da find /boot -name '*.cfg', ma nessuno di essi contiene informazioni sulle versioni remote del kernel.
Sparhawk,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.