Skip to main content

102.4 Gerenciamento de pacotes Debian



Toda distribuição pode trabalhar com sistema de instalação de aplicações em 2 níveis, o primeiro é o nível local e o segundo é o nivel remoto ou online. No local o pacote (aplicação que será instalada), está localmente na máquina, não tendo que baixar ela e na online/remoto, devemos primeiro baixar o pacote de um repositório (diretório onde ficam armazenados as aplicações) para que ele seja instalado.

A maioria das distribuições possuem normalmente 2 gerenciadores de pacotes, um para aplicações locais na máquina e outro que vão gerenciar as aplicações em repositórios (remoto), algumas possuem só uma, mas isso não vem ao caso, observe uma comparação entre Debian e RedHat:

Padrão (DEB) DebianPadrão (RPM) RedHat
Extensão do arquivos.deb.rpm
Gerenciador de pacote localdpkgrpm
Gerenciador de pacote remoto (possui aplicações locais também)apt-getyum
Outros comandosdpkg-reconfigure
apt-cache
dselect
aptitude
alien
yumdonwloader
rpm2cpio
Nome do Arquivoname_version.revision-debiancodename_architeture.debname-version-release.arch.rpm

O gerenciador de pacotes sempre mantém uma base de dados relacionando todos os pacotes instalados, dependências deles, entre outras informações.



DPKG


O dpkg é o gerenciador de pacotes locais na máquina, não podendo efetuar a instalação de pacotes que estejam em reposítorios online.


Opções:

OpçãoDescrição
-lLista todos os pacotes instalados
-l \<pacote>Mesma coisa acima, mas exibe apenas um pacote.
-L \<pacote>Lista os arquivos 'pertencentes' ao(s) pacote(s).
-I \<pacote.deb>Exibe informações do pacote.
-s \<pacote>Exibe o status do pacote com algumas informações do pacote.
-S \<file>Mostra qual pacote originou o arquivo.
-S \<pacote>Mostra todos os arquivos originados pelo pacote
-r \<pacote>Remove o pacote, mas mantém arquivos de configurações, --purge remove tudo.
-i \<pacote.deb>Instala o pacote.
-c \<pacote.deb>Lista o conteúdo do pacote.
--configure \<pacote>Configura um pacote.
--unpack \<pacote>Irá desempacotar o pacote.
-p \<pacote>Mostra informações como Tamanho, arquitetura, versão etc.
-CProcura parcotes parcialmente instalados (--audit)

Ao rodar o comando dpkg -l podemos ver 2 letras no início da linha, antes do nome da aplicação NÃO CAI NA LPI.

Primeira LetraAção desejada
uDesconhecido - unknown
iInstalado - install
rRemovido/Desinstalado
pRemovido inclusive os arquivos de configuração - purge
hSegurar/Manter - Hold
Segunda LetraStatus do pacote
nNão instalado
iInstalado
cExistem arquivos de configuração instalado
UDescompactado
FMeio configurado (falha na configuração)
hMeio instalado (Falha na instalação)
WTriggers-awaited (Pacote está esperando por um gatilho de outro pacote)
tTriggers-pendentes (pacote foi disparado)
Terceira LetraEstado de erro (Se tudo tiver bem não verá nada na terceira letra)
\<vazio>Não existe problema relacionado a terceira letra.
RReinst-required (Pacote quebrado, Reinstalação necessária)

Para reconfigurar um pacote, usamos o comando dpkg-reconfigure.



APT-GET


O gerenciador apt-get é usado para fazer o gerenciamento de pacotes online, normalmente ele baixa e instalado usando dpkg. Antes de iniciar o download, ele irá verificar se o pacote existe na sua base de dados, e caso exista, ele vai baixar e usar o dpkg para instalar.

ComandoDescrição
apt-get updateAtualiza o banco de dados local (vê o que tem no mirror; repositório online), não atualiza as apicações.
apt-get install \<pacote>Instala um pacote.
apt-get install -s \<pacote>Simula a instalação de um pacote.
apt-get upgradeAtualiza as aplicações locais, todas que tiverem uma atualização.
apt-get dist-upgradeAtualiza tudo de forma inteligente, tentando resolver as dependências, muito usado para migrar de uma versão antiga de uma distro para uma mais nova (precisa ter o novo mirror).
apt-get check \<pacote>Atualiza o cache do pacote e verifica se há dependências quebradas
apt-get cleanRemove todos os pacotes baixados pelo apt-get install <pacotes>, mas não limpa arquivos de bloqueio /var/cache/apt/archives e /var/cache/apt/archives/partial/.
apt-get autocleanAssim como o clean, o autoclean limpa o repositório local dos arquivos de pacote. A diferença é que ele remove apenas arquivos de pacote que não podem mais ser baixados e são amplamente inúteis.
apt-get -d install \<pacotes>Faz somente o download do pacote, eles ficaram em /var/cache/apt/archives/.
apt-get remove \<pacotes>Remove os pacotes, igual dpkg -r <pacote>
apt-get autoremoveÉ usado para remover pacotes que foram instalados automaticamente para satisfazer dependências de outros pacotes e agora não são mais necessários.
apt-get source \<pacotes>Baixa a fonte de um determinado pacote. Para isso você precisa ter o deb-src habilitado nos mirrors.
apt-get build-dep \<pacotes>Configura as dependências do programa a ser instalado a partir do fonte deste programa.
apt-get changelog \<pacotes>Obtem o changelog do programa/pacote.
-qSaída para registo - sem indicador de progresso.
-qqSem saída, excepto para erros.
-dFazer apenas o download - NÃO instalar ou descompactar arquivos.
-fTentar corrigir um sistema com dependências erradas.
-mTentar continuar se os arquivos não poderem ser localizados.
-uMostrar também uma lista de pacotes actualizados.
-bConstruir o pacote de código-fonte depois de o obter.
-VMostrar números da versão detalhados.
-cLer este ficheiro de configuração.
-oDefinir uma opção de configuração arbitrária.

Para fazer um upgrade de sistema operacional (uma versão antiga para uma versão mais nova de uma distro), o recomendado mesmo é utilizar o comanod do-release-upgrade, ele irá atualizar de uma maneira ainda mais inteligente, resolvendo conflitos ou tentando.



APT-CACHE


Exibe as informações que ele tem na base de dados (informações sobre pacotes, versões, em qual repositório eles estão etc).

ComandosDescrição
apt-cache show \<pacote>Mostra informações do pacote que está remoto.
apt-cache depends \<pacote>Quais são as dependências do pacote.
apt-cache search \<pacote>Busca um pacote remotamente.
apt-cache policy \<pacote>Pesquisa tanto na base de aplicações instaladas como no mirror, mostra qual mirror o pacote está, quais versões tem disponível, qual a versão instalada, quando foi instalado (se é que foi...).
apt-cache pkgnamesMostra o nome de todos os pacotes instalados no sistema.
apt-cache showpkg \<pacote>Mostra informações completas sobre o pacote.
apt-cache statsMostra uma estátistica, informando número de pacotes instalados, número de dependências entre outas informações.
apt-cache unmet \<pacote>Mostrar todas as dependências não satisfeitas
apt-cache gencachesConstruir os caches de pacotes e de código-fonte
-pCache de pacotes.
-sCache de fontes.
-qDesabilita o indicador de progresso.
-iMostra apenas dependências importantes para o comando unmet.
-cIrá ler este ficheiro de configuração.
-oDefine uma opção arbitrária de configuração.

Os repositórios, mais conhecidos como mirrors, ficam em /etc/apt/sources.list.



APT-FILE


Ssado para executar mais operações no índice do pacote, como listar o conteúdo de um pacote ou localizar um pacote que contenha um arquivo específico. Esse utilitário talvez não esteja instalado por padrão no seu sistema.

Essa ferramenta funciona tanto para aplicações que estão na máquina como para aquelas que não esteja.

Nesse caso, geralmente é possível instalá-lo usando apt-get:

$ sudo apt-get install apt-file

Após a instalação, será preciso atualizar o cache do pacote usado para apt-file:

$ sudo apt-file update

Exibindo o conteúdo de um pacote:

$ apt-file list ksh
ksh: /etc/skel/.kshrc
ksh: /usr/bin/ksh2020
ksh: /usr/bin/rksh2020
ksh: /usr/bin/shcomp2020
ksh: /usr/share/applications/ksh.desktop
ksh: /usr/share/doc-base/ksh2020
ksh: /usr/share/doc/ksh/CHANGELOG.md.gz
ksh: /usr/share/doc/ksh/COMPATIBILITY.gz
ksh: /usr/share/doc/ksh/DESIGN.gz
ksh: /usr/share/doc/ksh/NEWS.Debian.gz
ksh: /usr/share/doc/ksh/OBSOLETE
ksh: /usr/share/doc/ksh/README.md.gz
ksh: /usr/share/doc/ksh/RELEASE.gz
ksh: /usr/share/doc/ksh/RELEASE88.gz
ksh: /usr/share/doc/ksh/RELEASE93.gz
ksh: /usr/share/doc/ksh/TODO.Debian
ksh: /usr/share/doc/ksh/TYPES.gz
ksh: /usr/share/doc/ksh/changelog.Debian.gz
ksh: /usr/share/doc/ksh/copyright
ksh: /usr/share/ksh/ksh2020.binfmt
ksh: /usr/share/lintian/overrides/ksh
ksh: /usr/share/man/man1/ksh2020.1.gz
ksh: /usr/share/man/man1/rksh2020.1.gz
ksh: /usr/share/man/man1/shcomp2020.1.gz
ksh93: /etc/skel/.kshrc

Procurando o pacote dono de um arquivo:

$ apt-file search shcomp2020.1.gz
ksh: /usr/share/man/man1/shcomp2020.1.gz

$ apt-file search libSDL2.so
libsdl2-dev: /usr/lib/x86_64-linux-gnu/libSDL2.so


Outros gerenciadores


O dselect é uma interface de menu para o apt-get.

O pacote denominado alien é usado para converter pacotes .deb (pacotes para Debian) em pacotes .rpm (pacotes RedHat) e vice versa. Se não for usado argumento irá converter para Debian e com -r converte para RedHat e o -i instala o pacote.

Opção do APTITUDEDescrição
aptitude full-upgradeExecutar uma atualização, possivelmente instalando e removendo pacotes
aptitude safe-upgradeFaz uma atualização segura de todos os pacotes do sistema
aptitude search \<pacote>Busca um pacote.
aptitude reinstall \<pacote>Baixar e reinstalar um pacote já instalado
aptitude changelog \<pacote>Mostrar o log de mudanças do pacote/programa
aptitude download nmapBaixa o pacote.
installInstala pacotes.
holdColoca pacotes em retenção.
unholdCancela o comando hold para um pacote.
markautoMarca pacotes como tendo sido automaticamente instalados.
unmarkautoMarca pacotes como tendo sido manualmente instalados.
forbid-versionProíbe o aptitude de atualizar para uma versão específica do pacote.
updateBaixa as listas de pacotes novos/atualizáveis.
build-depInstall the build-dependencies of packages.
forget-newEsquece quais pacotes são "novos".
showExibe informações detalhadas sobre um pacote.
cleanApaga arquivos de pacotes baixados.
autocleanApaga arquivos antigos de pacotes baixados.
whymostra por que um ou mais pacotes precisariam de dado pacote.
why-notmostra por que um ou mais pacotes levariam a um conflito com o dado pacote, se instalado.