Índice
Existem várias ferramentas que são usadas para gerir pacotes Debian, desde interfaces gráficas ou baseadas em texto até ferramentas de baixo nível usadas para instalar pacotes. Todas as ferramentas disponíveis contam com as ferramentas de baixo nível para funcionarem apropriadamente e são aqui apresentadas num nível de complexidade decrescente.
É importante perceber que as ferramentas de alto nível de gestão de pacotes como o aptitude ou synaptic fiam-se no apt, o qual fia-se no dpkg para gerir os pacotes no sistema.
Veja Capítulo 2. Gestão de pacotes Debian de Debian reference para mais informação acerca de utilitários de gestão de pacotes Debian. Este documento está disponível em vários idiomas e formatos, veja a entrada Debian Reference na vista geral do Manual de Utilizadores de DDP.
Este é o principal programa de gestão de pacotes. dpkg pode ser invocado com muitas opções. Alguns usos mais comuns são:
Descobrir todas as opções: dpkg --help
.
Escreve o ficheiro de controle (e outra informação) para um pacote
especificado: dpkg --info foo_VVV-RRR.deb
.
Instala um pacote (incluindo descompactar e configurar) no sistema de
ficheiros do disco rijo: dpkg --install foo_VVV-RRR.deb
.
Desempacota (mas não configura) um arquivo Debian para o sistema de
ficheiros no disco rijo: dpkg --unpack
foo_VVV-RRR.deb
. Note que esta operação não
deixa necessariamente o pacote no estado utilizável; alguns ficheiros podem
precisar de mais personalização para funcionarem de modo apropriado. Este
comando remove qualquer versão já instalada do programa e corre o script
preinst (veja Secção 7.6, “O que é um script Debian preinst, postinst, prerm, e postrm?”) associado ao pacote.
Configura um pacote que já foi desempacotado: dpkg --configure
foo
. Entre outras coisas, esta acção corre o script postinst (veja
Secção 7.6, “O que é um script Debian preinst, postinst, prerm, e postrm?”) associado ao pacote. Também actualiza os
ficheiros listados em conffiles
para este pacote. Note
que a operação 'configure' toma como primeiro argumento um nome de pacote
(ex. foo), e não o nome do ficheiro de arquivo Debian
(ex. foo_VVV-RRR.deb).
Extrai um ficheiro único chamado "blurf" (ou um grupo de ficheiros chamado
"blurf*") de um arquivo Debian: dpkg --fsys-tarfile foo_VVV-RRR.deb
| tar -xf - 'blurf*'
.
Remove um pacote (mas não os seus ficheiros de configuração): dpkg
--remove foo
.
Remove um pacote (incluindo os seus ficheiros de configuração):
dpkg --purge foo
.
Lista o estado de instalação de pacotes que contêm a string (ou expressão
regular) "foo*": dpkg --list 'foo*'
.
APT é a Advanced Package Tool, uma interface avançada
para o sistema de empacotamento Debian que fornece o programa
apt-get. Fornece ferramentas de linha de comandos para
procurar e gerir pacotes, e para pesquisar informação sobre eles, assim como
acesso de baixo nível a todas as funcionalidades da biblioteca
libapt-pkg. Para mais informação, veja o Guia de Utilizador em
/usr/share/doc/apt-doc/guide.html/index.html
(terá de
instalar o pacote apt-doc
).
A partir do Debian Jessie, alguns comandos frequentemente usados do apt-get e apt-cache têm um equivalente via novo binário apt. Isto significa que alguns comandos populares como apt-get update, apt-get install, apt-get remove, apt-cache search, ou apt-cache show agora podem também ser chamados simplesmente via apt, digamos apt update, apt install, apt remove, apt search, ou apt show. O seguinte é uma visão geral dos comandos antigos e novos.
apt-get update -> apt update apt-get upgrade -> apt upgrade apt-get dist-upgrade -> apt full-upgrade apt-get install package -> apt install package apt-get remove package -> apt remove package apt-get autoremove -> apt autoremove apt-cache search string -> apt search string apt-cache policy package -> apt list -a package apt-cache show package -> apt show package apt-cache showpkg package -> apt show -a package
A ferramenta apt funde a funcionalidade do apt-get e apt-cache e por predefinição tem um formato colorido e bonito para os resultados, tornam-do-o mais agradável para humanos. Para utilização em scripts ou casos de utilização avançada, ainda é preferido ou necessário o apt-get.
O apt-get fornece um modo simples de obter e instalar
pacotes a partir de múltiplas fontes usando a linha de comandos. Ao
contrário do dpkg, o apt-get não
compreende ficheiros .deb, trabalha com o nome próprio dos pacotes e só
consegue instalar arquivos .deb a partir de uma fonte especificada em
/etc/apt/sources.list
. o apt-get
irá chamar o dpkg diretamente após descarregar os
arquivos .deb [5] a partir das fontes
configuradas.
Algumas maneiras comuns de usar o apt-get são:
Para actualizar a lista de pacotes conhecida pelo seu sistema, você pode correr:
apt update
(você deve executar isto regularmente para actualizar as suas listas de pacotes)
Para instalar o pacote foo
e todas as suas
dependências, corra:
apt install foo
Para remover o pacote foo do seu sistema, corra:
apt remove foo
Para remover o pacote foo e os seus ficheiros de configuração do seu sistema, execute:
apt purge foo
Para listar todos os pacotes para os quais estão disponíveis novas versões, execute:
apt list --upgradable
Para atualizar todos os pacotes no seu sistema (sem instalar pacotes extra nem remover pacotes), execute:
apt upgrade
Para atualizar todos os pacotes no seu sistema, e, se necessário para a atualização dum pacote, instalar pacotes extra ou remover pacotes, execute:
apt full-upgrade
(O comando upgrade
mantém um pacote na sua versão
obsoleta instalada se a actualização precisar da instalação de um pacote
extra, para que seja satisfeita uma nova dependência. O comando
full-upgrade
é menos conservativo.)
Note que você precisa de ser root para executar quaisquer comandos que modificam pacotes.
Note que o apt-get agora também instala pacotes recomendados por predefinição, e graças à sua robustez é o programa preferido para gestão de pacotes a partir da consola para executar a instalação do sistema e as grandes actualizações.
A suite de ferramentas do apt também inclui a ferramenta apt-cache para analisar as listas de pacotes. Você pode usa-la para encontrar pacotes que fornecem funcionalidades específicas através de texto simples ou expressões regulares e através de consultas de dependências no sistema de gestão de pacotes. Algumas maneiras comuns de usar o apt-cache são:
Para encontrar pacotes cuja descrição contenha
palavra
:
apt search palavra
Para mostrar a informação detalhada de um pacote:
apt show pacote
Para escrever quais os pacotes de que um determinado pacote depende:
apt-cache depends pacote
Para escrever informação detalhada das versões disponíveis de um pacote e dos pacotes que de reverso dependem dele:
apt-cache showpkg pacote
Para mais informação, instale o pacote apt
e leia
apt(8),
apt-get(8),
sources.list(5)
e instale o pacote apt-doc
e leia
/usr/share/doc/apt-doc/guide.html/index.html
.
O aptitude é um gestor de pacotes para sistemas Debian GNU/Linux que fornece um frontend para a estrutura de gestão de pacotes apt. O aptitude é uma interface baseada em texto que usa a biblioteca curses. As acções podem ser executadas a partir duma interface visual ou a partir da linha de comandos.
O aptitude pode ser usado para executar tarefas de gestão num modo rápido e fácil. Permite ao utilizador ver a lista de pacotes e executar tarefas de gestão de pacotes como instalar, actualizar, e remover pacotes.
O aptitude fornece a funcionalidade do apt-get, assim como muitas funcionalidades adicionais:
O aptitude oferece acesso fácil a todas as versões de um pacote.
O aptitude facilita a detecção de software obsoleto ao lista-lo sob "Pacotes Obsoletos ou Criados Localmente".
O aptitude inclui um sistema bastante poderoso para procurar pacotes particulares e limitar a amostragem dos pacotes. Os utilizadores familiarizados com o mutt irão aprender depressa, pois o mutt foi a inspiração para a sintaxe de expressão.
O aptitude pode ser usado para instalar as tarefas predefinidas disponíveis. Para mais informação veja Secção 8.1.5, “tasksel”.
O aptitude em modo de ecrã completo tem a funcionalidade su embebida e pode ser corrido por um utilizador normal. Ele irá chamar su (e pedir a palavra passe do root, se existir) quando você realmente precisar de privilégios administrativos.
Você pode usar o aptitude através da interface visual
(simplesmente corra aptitude
) ou directamente da linha de
comandos. A sintaxe de linha de comandos usada é muito semelhante a aquela
usada no apt-get. Por exemplo, para instalar o pacote
foo
, você pode correr aptitude install
.
foo
Note que o aptitude é o programa preferido para gestão diária de pacotes a partir da consola.
Para mais informação, leia o manual do
aptitude(8)
e instale o pacote aptitude-doc
.
O synaptic é um gestor de pacotes gráfico. Permite-lhe instalar, actualizar e remover pacotes de software num modo amigável ao utilizador. Juntamente com a maioria das funcionalidades oferecidas pelo aptitude, também tem a funcionalidade de editar a lista de repositórios usados, e suporta navegar em toda a documentação disponível relativa a um pacote. Veja o Sitio do Synapti para mais informação.
Quando você deseja executar uma tarefa específica pode ser difícil encontrar
a suite de pacotes apropriada que você precisa. Os desenvolvedores de Debian
definiram tasks
, uma task é uma coleção de vários pacotes
Debian individuais todos relacionados com uma atividade específica. As tasks
podem ser instaladas através do programa tasksel ou
através do aptitude.
Tipicamente, o instalador de Debian irá automaticamente instalar a task
associada a um sistema standard e um ambiente de desktop. O ambiente de
desktop específico instalado irá depender do meio de CD/DVD usado, mais
comum será o GNOME desktop (gnome-desktop
task). Também,
dependendo das suas selecções através do processo de instalação, podem ser
instaladas tasks automaticamente no seu sistema. Por exemplo, se você
selecionar um idioma diferente de Inglês, a task associada será também
instalada automaticamente.
Este programa manipula ficheiros de arquivo Debian
(.deb
). Algumas utilizações comuns são:
Descobrir todas as opções: dpkg-deb --help
.
Determinar que ficheiros estão contidos num ficheiro de arquivo Debian
dpkg-deb --contents foo_VVV-RRR.deb
Extrair os ficheiros contidos num arquivo Debian nomeado para um directório
especificado pelo utilizador: dpkg-deb --extract
foo_VVV-RRR.debtmp
extrai cada um dos ficheiro em
foo_VVV-RRR.deb
para o directório
tmp/
. Isto é conveniente para examinar o conteúdo de um
pacote num directório localizado, sem instalar o pacote no sistema de
ficheiros raiz.
Extrair os ficheiros de informação de controlo de um pacote:
dpkg-deb --control foo_VVV-RRR.deb tmp
.
Note que quaisquer pacotes que foram meramente desempacotados usando
dpkg-deb --extract
irão ficar incorretamente instalados,
em vez disto você deve usar dpkg --install
.
Mais informação é fornecida no manual dpkg-deb(1).
O kernel (sistema de ficheiros) em sistemas Debian GNU/Linux suporta substituir ficheiros mesmo quando estes estão a ser usados.
Também disponibilizamos um programa chamado start-stop-daemon o qual é usado para arrancar daemons durante o arranque da máquina ou para parar daemons quando o runlevel muda (ex. de multi-utilizador para único-utilizador ou parar). O mesmo programa é usado por scripts de instalação quando é instalado um novo pacote que contém um daemon, para parar daemons em execução, e reinicia-los quando necessário.
Para conhecer o estado de todos os pacotes instalados num sistema Debian execute o comando
dpkg --list
Isto escreve um sumário de uma linha para cada pacote, dando um símbolo de estado de 2 (explicado no cabeçalho), o nome do pacote, a versão que está instalada, e uma breve descrição.
Para conhecer o estado de pacotes cujos nome correspondem a qualquer padrão começado com "foo", corra o comando:
dpkg --list 'foo*'
Para obter um relatório mais detalhado para um determinado pacote, execute o comando:
dpkg --status nome-do-pacote
Para listar todos os ficheiros fornecidos pelo pacote instalado
foo
execute o comando
dpkg --listfiles foo
Note que não são mostrados os ficheiros criados pelos scripts de instalação.
Para identificar o pacote que produziu o ficheiro com nome
foo
execute um destes:
dpkg --search foo
Isto procura por foo
em pacotes instalados. (Isto é
(actualmente) o equivalente a procurar em todos os ficheiros que têm a
extensão .list
no directório
/var/lib/dpkg/info/
, e ajustar os resultados para
escrever os nomes de todos os pacotes que o contêm, e diversões.)
Uma alternativa mais rápida de fazer isto é a ferramenta dlocate.
dlocate -S foo
zgrep foo Contents-ARCH.gz
Isto procura por ficheiros que contêm a sub-string foo
nos seus nomes de caminho completos. Os ficheiros
Contents-ARCH.gz
(onde ARCH representa a arquitectura
desejada) residem nos maiores directórios de pacotes (main, non-free,
contrib) num site de arquivo Debian (isto é, sob
/debian/dists/bookworm
). Um ficheiro
Contents
refere-se apenas ao pacote na árvore de
sub-directório onde reside. Assim, um utilizador pode ter que procurar em
mais do que um ficheiro Contents
para encontrar o pacote
que contém o ficheiro foo
.
Este método tem vantagem sobre dpkg --search
no modo que
irá encontrar ficheiros em pacotes que não estão actualmente instalados no
seu sistema.
apt-file search
foo
Se você instalar o pacote apt-file
,
à semelhança de cima, procura ficheiros que contêm a sub-string ou expressão
regular foo
nos seus nomes de caminho completos. A
vantagem sobre o exemplo em cima é que não há necessidade de obter os
ficheiros Contents-ARCH.gz
pois irá fazer isto
automaticamente para todas as fontes definidas em
/etc/apt/sources.list
quando você corre (como root)
apt-file update
.
Alguns pacotes estão divididos em programa ("foo") e dados ("foo-data") (ou em 'foo' e "foo-doc"). Isto é verdade para muitos jogos, aplicações multimédia e dicionários em Debian e foi introduzido porque alguns utilizadores podem querer aceder aos dados crus sem instalarem o programa ou porque o programa pode correr sem os próprios dados, tornando 'foo-data' opcional.
Situações semelhantes ocorrem quando se lida com bibliotecas: geralmente estas são instaladas porque os pacotes que contêm aplicações dependem delas. Quando o pacote da aplicação é purgado, o pacote da biblioteca pode permanecer no sistema. Ou: quando o pacote-aplicação já não depende mais de, por exemplo, libdb4.2, mas de libdb4.3, o pacote libdb4.2 pode ficar quando o pacote-aplicação é actualizado.
Nestes casos, "foo-data" não depende de "foo", assim quando você remove o pacote "foo" ele não será removido automaticamente pela maioria das ferramentas de gestão de pacotes. O mesmo é verdadeiro para os pacotes de bibliotecas. Isto é necessário para evitar dependências circulares. No entanto, se você usar apt-get (veja Secção 8.1.2, “APT”) ou aptitude (veja Secção 8.1.3, “aptitude”) como a sua ferramenta de gestão de pacotes, ela irá acompanhar automaticamente os pacotes instalados e dar-lhe a possibilidade de as remover, quando nenhum pacote que as usa restar no seu sistema.
[5] Note que há portes que tornam esta ferramenta disponível com outros sistemas de gestão de pacotes, como a gestão de pacotes do Red Hat, também conhecida como rpm