Comandos úteis do apt (dpkg) [closed]

8

Por favor, poste seus comandos apt menos conhecidos, mas úteis, envolvendo o apt- *, dpkg ou aptitude.

    
por Gödel 15.11.2010 / 02:07

8 respostas

7

Algum comando que eu uso com frequência:

para ver dependências e dependências reversas:

apt-cache [--important] [--installed] [--recurse] depends $package
apt-cache rdepends $package

Para remover um pacote, todos os pacotes de autoremove e todos os arquivos de configuração relacionados:

sudo apt-get --purge --auto-remove purge $package

Para ver as opções de configuração apt reais:

apt-config dump | less

Para modificar uma opção na linha de comando

$ apt-config dump | grep -i recommend
APT::Install-Recommends "1";
$ sudo apt-get -o APT::Install-Recommends="0" install $package

Este foi apenas um exemplo de especificação de opções APT através da linha de comando, para evitar a instalação de pacotes recomendados, você pode usar:

sudo apt-get --no-install-recommends $package

Para ver todos os pacotes locais / obsoletos:

aptitude search ~o

Para ver os pacotes removidos com configuração residual:

aptitude search ~c

e para removê-los

sudo aptitude purge ~c

Para obter uma lista de todos os pacotes instalados ( dpkg -l pode, às vezes, fornecer saída de colunas truncadas)

dpkg --get-selections | awk '{ print  }'

ou

dpkg-query -Wf '${Package}\n'  # other fields available, see man page

Para dissasemble, modifique e aplique um pacote

dpkg-deb -x file.deb ./dir
cd dir 
dpkg-deb -e ../file.deb
# apply your modification, then... 
cd ..
dpkg-deb -b dir file-new.deb
    
por enzotib 09.09.2011 / 19:35
4

Dois que eu uso muito são: -

apt-get autoremove <packagename>

O qual removerá o pacote e todas as dependências não usadas, o que é útil se você tentar um aplicativo, e decidir que não precisa dele, e deseja que o arquivo seja removido também.

dpkg -S /path/to/file

Que me diz em qual pacote um arquivo foi instalado.

Finalmente, mais um ...

dpkg -l <packagename> | grep ^ii

Relaciona os pacotes, mas somente aqueles que têm o status ii, o que significa que eles estão instalados, por isso não mostrará as coisas que eu removi.

Se você deseja obter o nome do pacote para um arquivo que não foi instalado ( dpkg -S , mas para pacotes não instalados), instale apt-file e execute:

apt-file search /path/to/file
    
por popey 09.09.2011 / 18:41
3

Ver o ChangeLog de um pacote

$ aptitude changelog <pkgname>

Exemplo:

$ aptitude changelog sudo
sudo (1.7.0-1ubuntu2.4) karmic-security; urgency=low

  * SECURITY UPDATE: properly handle multiple PATH variables when using
    secure_path in env.c
    - Adapted http://www.sudo.ws/repos/sudo/raw-rev/a09c6812eaec
    - CVE-2010-1646
...
    
por Gödel 15.11.2010 / 07:34
3

Instale o arquivo apt e execute sudo apt-file update . Agora você pode procurar arquivos em pacotes que você nem instalou.

Também útil se você precisar de informações sobre pacotes em outras versões do Ubuntu é o rmadison, que está no pacote devscripts. Forneça um nome de pacote como argumento e ele informará quais versões desse pacote existem em todas as versões atuais do Ubuntu e em qual seção do repositório ele está.

Exemplo:

[bnrubin@server:~/]$ rmadison cowsay
    cowsay |     3.03-8 | dapper/universe | source, all
    cowsay |     3.03-9 | hardy/universe | source, all
    cowsay |   3.03-9.2 | jaunty/universe | source, all
    cowsay |   3.03-9.2 | karmic/universe | source, all
    cowsay |   3.03-9.2 | lucid/universe | source, all
    cowsay | 3.03+dfsg1-2 | maverick/universe | source, all
    cowsay | 3.03+dfsg1-2 | natty/universe | source, all
    
por Benjamin Rubin 20.11.2010 / 01:23
1

Para obter comandos de lista começa com 'apt-' você faz o seguinte. abra um terminal e digite 'apt-' e pressione a tecla TAB duas vezes, isso listará todos os comandos iniciados com 'apt -'.

Exemplo de saída:

apt-add-repository    apt-extracttemplates  apt-key
apt-cache             apt-file              apt-mark
apt-cdrom             apt-ftparchive        apt-sortpkgs
apt-config            apt-get 

Para obter informações detalhadas, você pode verificar a página man do comando específico

por exemplo: man apt-get

    
por aneeshep 15.11.2010 / 06:46
1

Eu gosto de pensar em três tipos diferentes de pacotes:

  • Pacotes do sistema (pacotes ou pacotes essenciais de padrão de prioridade ou superior)
  • Pacotes do usuário (pacotes instalados manualmente de prioridade opcional ou extra)
  • Dependências e recomendações (pacotes instalados automaticamente / tudo o que não é um sistema ou pacote de usuário)

Para mostrar todos os "pacotes do sistema", você pode usar

aptitude search '(~pstandard|~pimportant|~prequired|~E)'

Eu gosto de ter todos eles instalados e marcados como instalados manualmente.

aptitude install '(~pstandard|~pimportant|~prequired|~E)!~i'
aptitude unmarkauto '(~pstandard|~pimportant|~prequired|~E)~i~M'

Para mostrar todos os "pacotes de usuários" use

aptitude search '~i!~M!(~pstandard|~pimportant|~prequired|~E)'

Nesta lista, deve haver apenas pacotes que você sabe que você quer. Todos os outros pacotes são provavelmente apenas dependências ou recomendações de outros pacotes, você pode marcá-los como instalados automaticamente

aptitude markauto libsomething

Veja Referência de termos de pesquisa do aptitude e O que é um pacote essencial, obrigatório, importante, padrão, opcional ou extra? para informações básicas.

    
por Dario Seidl 20.09.2011 / 14:07
0
  • Atualize os pacotes que seriam retidos porque removeriam outros pacotes ou porque é uma atualização do kernel:

    sudo apt-get dist-upgrade
    
  • Limpar um pacote e sua configuração.

    sudo apt-get purge package
    
  • Mostre detalhes de um pacote como é conhecido no banco de dados de pacotes, incluindo seção, versão, dependências, mantenedor e descrição.

    apt-cache show package
    
  • Listar arquivos em um pacote instalado

    dpkg -L pkg
    
  • Atualize todos os pacotes

    sudo apt-get upgrade
    
por PinoSan 09.09.2011 / 18:47
-2
dpkg -i --force-architecture something.i386.deb

Para instalar alguns debs do i386 em amd64.

    
por Extender 09.09.2011 / 18:48