Como alguém lista os pacotes em um arquivo .deb?

4
sudo dpkg --install some_stuff_all.deb

Instale os pacotes no arquivo some_stuff_all.deb .

sudo dpkg --remove some_stuff_all.deb

Exibe a mensagem:

dpkg: error: you must specify packages by their own names, not by quoting the names of the files they come in
...
Type dpkg-deb --help for help about manipulating *.deb files;

Em seguida, isso lista os arquivos individuais:

dpkg-deb  --contents  some_stuff_all.deb

Como um lista os pacotes em um arquivo .deb ?

    
por C.W.Holeman II 05.10.2015 / 01:14

3 respostas

9

Para obter informações sobre um arquivo de pacote:

dpkg -I some_stuff_all.deb

Isso fornece todas as informações disponíveis sobre o arquivo, incluindo Pacote :, Versão :, Depende :, Descrição :, etc.

Veja dpkg --help para um resumo das opções e man dpkg para detalhes. Observe que -I é, na verdade, uma opção dpkg-deb , mas dpkg é executado dpkg-deb quando você concede as opções dpkg-deb . Veja dpkg-deb --help e man dpkg-deb também.

    
por 05.10.2015 / 06:05
10

Existe apenas um pacote em um arquivo .deb .

Se um arquivo de pacote tiver o nome example_1.234.deb , o pacote será denominado example . (Pelo menos normalmente é. Teoricamente alguém poderia renomear o arquivo.)

Se você quiser remover um pacote usando o dpkg, você tem que usar

dpkg --remove example e não dpkg --remove example_1.234.deb

porque você deseja remover o pacote instalado, não o arquivo do pacote.

    
por 05.10.2015 / 01:20
3

Supondo que seu pacote se chama foo.deb , você pode extrair o nome real do pacote (assim como todos os outros campos listados na saída de dpkg-deb -I foo.deb ) usando dpkg-deb com a opção -f :

dpkg-deb -f foo.deb Package
  • -f foo.deb Package : extrai o campo Package do pacote foo.deb
user@user-X550CL ~/tmp % ls -l
totale 46316
-rw-rw-r-- 1 user user 47425034 ott  5 05:55 foo.deb
user@user-X550CL ~/tmp % dpkg-deb -f foo.deb Package                      
google-chrome-stable

Expandindo isso, você pode remover o pacote em questão diretamente usando uma substituição de comando executando dpkg-deb -f foo.deb Package dentro de um comando dpkg -r :

sudo dpkg -r $(dpkg-deb -f foo.deb Package)
    
por 05.10.2015 / 06:07