Listar todas as versões de um pacote


17

Existe um equivalente a este comando; yum list kernel-headers --showduplicatesno Ubuntu com apt-get, apt-cacheetc. O comando acima lista várias versões do rpm dos cabeçalhos do kernel disponíveis no F20 / RHEL ou nas instalações.

Armário que posso usar apt-cache showpkg, não tenho certeza se existe uma maneira melhor?

$ 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  

Esperando resultados semelhantes:

$ 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

Isso me ajudaria a fazer um downgrade ou atualizar para uma versão específica.


você quis dizer listar a versão de todos os pacotes instalados junto com os nomes dos pacotes?
Avinash Raj

Ambos instalados e desinstalados, semelhante ao comando acima:
askb

O mais próximo que pude ficar estava usandodpkg --list | grep linux-image
askb

dpkg --listmostra os detalhes de todos os pacotes instalados.
Avinash Raj

Respostas:


13

Você tem o comando correto, exceto linux-image não é um nome de pacote real.

$ 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 showpkgdeve funcionar para pacotes reais, no entanto. por exemplo

$ 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 você quiser ver todas as versões dos linux-imagepacotes-like, basta fazer uma pesquisa, por exemplo

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

O problema é que as diferentes versões do kernel ( linux-image) estão em pacotes individuais e são nomeadas independentemente, de acordo com a versão. Eles não são todas as versões do pacote único.


EDITAR

Isso lista todos os pacotes disponíveis. Para mostrar qual está instalado, você pode usar dpkg -l. por exemplo

$ 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

Outra maneira de obter informações sobre pacotes diferentes, mas com nomes semelhantes (por exemplo linux-image*), é usando aptitude search.

$ aptitude search linux-image

Você também pode filtrar com grep usando esta sintaxe estranha para contornar um bug / recurso do aptitude.

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

Um ina primeira coluna informa que ele já está instalado. Veja man aptitudepara os outros caracteres.


a saída que eu recebo yummostra claramente o que está instalado, desinstalado e disponível.
Ask 29/05

OK. Você provavelmente deve adicionar isso à sua pergunta, já que muitos usuários do Ubuntu (inclusive eu) não sabem o que yumproduz. Eu adicionei mais informações na resposta.
Sparhawk 29/05

@askb Obrigado pela edição. Como mencionado na minha resposta, acho que parte do problema é que o Ubuntu altera o nome de cada kernel dependendo da versão, enquanto o Fedora usa o mesmo nome, independentemente da versão. Uma vantagem do primeiro é que você pode ter várias versões instaladas ao mesmo tempo e reverter para uma versão antiga no grub, se houver problemas. De qualquer forma, a apt-cache searchestratégia deve funcionar.
Sparhawk 30/05

obrigado pela resposta, com rpminstalações baseadas, é possível que várias versões do kernel estejam instaladas, desde que as versões sejam diff, mas isso normalmente não é aplicável a todos os pacotes na instalação baseada em rpm ou ao AFAIK direto. No entanto, ainda estou tentando encontrar uma maneira limpa, em que obtenho detalhes dos pacotes instalados e disponíveis (em repositórios) no ubuntu, no que diz respeito à apt-cache search idéia , é aplicável apenas aos pacotes locais e não analisa os repositórios . O mais próximo que eu consegui foi comshowpkg
askb

@askb Não, apt-cache searchprocura em repositórios , não localmente. AFAIK não diz nada sobre pacotes instalados localmente. Você precisa dpkgdisso, conforme minha primeira edição. Eu adicionei em uma segunda edição, que é um único comando aplicável aos kernels.
Sparhawk 30/05

8

Eu acho que você está procurando o comando madison no apt-cache:

apt-cache madison chromium-browser

Resultado:

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 uma referência rápida de todas as versões disponíveis e do repositório de origem. Isso é ótimo se você usa um PPA para um pacote e deseja verificar a diferença nas versões entre o PPA e os principais repositórios.

Mais informações sobre madison na página de manual:

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

Você pode usar dpkgpara ver todos os pacotes instalados:

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

O meta-pacote do kernel Linux é chamado no Debian linux-image-generic.

$ apt-cache madison linux-image-generic

fornecerá todas as versões disponíveis nos repositórios do APT (não necessariamente instalados no seu sistema).


-1

Você tentou inicializar um kernel antigo e, no terminal, digite:

showpkg kernel-header.list

e eu acho que pode estar no diretório de inicialização, e todo o kernel fica lá, e isso pode funcionar bem.

e então você pode simplesmente digitar para fazer o downgrade disso no terminal:

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

e pode funcionar bem dessa maneira.


Não tenho certeza do que isso significa. Não existe /dirctory, /directoryou /grubno meu sistema, e nenhum arquivo é chamado kernel-headers.list. Além disso, a leitura de um arquivo local provavelmente não informa quais versões remotas estão disponíveis. -1 (mas vou reverter, se puder esclarecer).
Sparhawk 30/05

Eu provavelmente quero dizer no diretório / boot, onde o arquivo grub se encontra.
Michael

Não tenho arquivo em /boot/kernel-headers.list. No entanto, você pode derivar uma lista de kernels instalados de (por exemplo) /boot/grub/grub.cfg, mas, novamente, são apenas os kernels instalados localmente, não as versões remotas nos repositórios.
Sparhawk 30/05

Eu talvez não que é a extensão .cfg / boot
Michael

Examinei todos os arquivos do find /boot -name '*.cfg', mas nenhum deles contém informações sobre versões remotas do kernel.
Sparhawk 31/05
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.