
No Linux, programas são bem mais do que simples executáveis. Eles são compostos por diversos arquivos, incluindo bibliotecas, traduções, documentação, etc. E como a instalação e remoção de cada um desses arquivos se tornaria uma tarefa muito complicada e trabalhosa, os programas acabam sendo organizados em pacotes: "arquivões" que contêm não apenas os componentes necessários para executar o programa, mas também scripts e metadados para a correta instalação e categorização deles.
Apesar de facilitar muito a vida de administradores de sistemas, os pacotes sozinhos também geram uma certa complicação. Muitos pacotes possuem dependências, ou seja, precisam que outros pacotes sejam instalados ou removidos antes deles. E para não termos que resolver todos esses conflitos manualmente existem os gerenciadores de pacotes.
A diferença básica das distribuições linux reside no gerenciador de pacotes que ela usa.
Lembre-se que existe 6 principais vertentes de distribuições linux e, cada uma delas, possui seus próprios gerenciadores de pacotes nativos:
Distribuição |
Gerenciadores de pacotes |
Tipo de pacote padrão |
Debian |
apt | dpkg |
.deb |
Ubuntu |
apt | dpkg |
.deb |
Zorin OS |
apt | dpkg |
.deb |
RedHat |
yum | rpm |
.rpm |
Fedora |
yum | rpm |
.rpm |
CentOS |
yum | rpm |
.rpm |
Suse |
yast | zypp |
.rpm |
Existem ainda alguns outros gerenciadores de pacotes não nativos que você pode usar: dnf, pacman, snap... Mas isto é assunto para outro momento.
O gerenciamento de pacotes é uma excelente maneira de distribuir, instalar e desinstalar software.
Um pacote é um arquivo que contém informações e arquivos (executáveis, binários, de configuração) necessários para que o gerenciador de pacotes possa manter os programas como também os demais arquivos necessários de um determinado aplicativo. Em outras palavras, um pacote é um programa compilado.
Vejamos agora os gerenciadores de pacotes mais importantes.
dpkg
Usado no Debian / Ubuntu
É o utilitário responsável pelo gerenciamento de pacotes em sistemas Debian e seus derivados. Ele mantém as informações dos pacotes instalados basicamente nos arquivos /var/lib/dpkg/available e /var/lib/dpkg/status. Estes arquivos contém a lista de pacotes disponíveis e status, respectivamente.
Opções mais frequentes:
Opção |
Descrição |
-c pacote |
(content) Lista os arquivos contidos no pacote.deb |
-i pacote |
Instala um pacote novo ou atualiza um pacote já instalado. |
-l |
Lista todos os pacotes instalados no sistema |
-l pacote |
Procura um pacote instalado com o nome desejado |
-L pacote |
Mostra o local dos arquivos instalados por um pacote |
--p pacote |
Mostra detalhes sobre o pacote (versão, dependências, arquitetura). |
--purge pacode |
remove todo o pacote em questão, inclusive configurações |
-r pacote |
remove todos os arquivos do pacote, exceto configurações |
-s pacote |
mostra o status de um pacote instalado |
-S arquivo |
procura (Search) por um arquivo nos pacotes instalados |
--unpack pacote |
desempacota um pacote, mas não instala |
--configure pacote |
configura um pacote não instalado |
dpkg-reconfigure pacote |
instalar pacote como se fosse a primeira vez |
apt
Usado no Debian / Ubuntu
O comando apt-get é um gerenciador avançado de pacotes. Ele pode utilizar arquivos locais ou remotos para realizar instalação ou atualização de pacotes. Desta maneira é possível atualizar todo o sistema debian via ftp ou http. Este gerenciador também mantém informações do pacotes e suas dependências.
As configurações do apt-get ficam em /etc/apt/apt.conf
O arquivo /etc/apt/sources.list contém os locais onde o apt-get encontrará os pacotes, a distro verificada (stable, testing, unstable, woody, sarge) e a seção que será copiada (mais, non-free, contrib, non-US)
O apt-get utiliza uma lista de pacotes para verificar se os pacotes existentes no sistema precisam ou não ser atualizados. A lista mais nova de pacotes é copiada através do comando apt-get update
As opções mais frequentes do apt-get são:
Opção | Descrição |
-d |
baixa os arquivos mas não instala. É util para baixar grande volumes de pacotes para posterior instalação |
-s |
simula a instalação dos pacotes, mas não realiza modificações |
-y |
responde afirmativamente por todas as perguntas feitas durante o processo de instalação/remoção |
O comandos mais frequentes usadas com o apt são:
Comando |
Descrição |
update |
atualiza a lista todos os pacotes disponíveis |
install pacote |
instala determinado pacote pelo nome |
remove pacote |
desinstala determinado pacote pelo nome |
remove --purge pacote |
desinstala e remove completamente o pacote |
upgrade |
atualização segura do sistema (remove versões antigas do kernel) |
Vejamos alguns exemplos:
Antes de mais nada, é importante rodar :
# apt-get update
Este comando não atualiza a versão do seu linux, apenas lista os softwares e versão de kernel.
Para atualizar a VERSÃO do seu linux :
# apt dist-upgrade
Exemplo: mostrar informações completas sobre pacote específico :
# apt show nome-pacote
Exemplo: procurar pacotes a partir de parte do nome :
# apt-cache search nome-pacote
Exemplo: mostrar detalhes mais minuciosos sobre pacote:
# apt-cache showpkg nome-pacote
Exemplo: mostrar as dependências necessárias para instalar pacote:
# apt-cache depends nome-pacote
apt-cache não faz alterações no sistema, mas provê resultados interessantes para o administrador tomar decisões referente ao gerenciamento de pacotes.
yum
Usado no RedHat / Fedora / Centos
# yum [opções] pacote
Ferramenta utilizada para gerenciar pacotes em distros que utilizam RPM, é similar ao apt. Ele necessita que seja feita configuração dos repositórios de pacotes no arquivo de configuração yum.conf
Além de trabalhar com repositórios remotos, também serve para instalar, remover e manter pacotes (RPM). Comandos mais comuns:
Comando |
Finalidade |
list |
lista todos os pacotes disponíveis (posso usar junto com greep) |
check-update ou list updates |
verificar se há pacotes disponíveis para update |
update |
faz o update do seu SO, incluindo kernel e grub |
upgrade |
mesmo que updade, mas remove pacs marcados como obsoletos |
install pacote |
instala o pacote e suas dependências |
info pacote |
apresenta informações básicas de um determinado pacote |
whatprovides nome-comando |
verifica qual pacote possui determinado comando |
remove pacote |
remove pacote específico, mas mantém configurações |
autoremove pacote |
remove completamente o pacote, inclusive configurações |
yumdownloader pacote |
baixa sem instalar |
Vejamos exemplo simples de uso do yum:
Arquivo / diretório |
Descrição |
/etc/yum.confg |
configurações principais |
/var/cache/yum |
onde arquivos são baixados |
/var/log/yum.log |
log de instalação realizadas |
/etc/yum.repos.d |
arquivos .repo que mostram os repositórios do yum |
o YUM geralmente NÃO FAZ atualização de versão DISTRO .
rpm
Usado no RedHat / Fedora / Centos
Verificar se programa chamado zip está instalado. Se retornar Available Packages é porque não está instalado. Se retornar Installed Packages é porque está instalado.
Last metadata expiration check: 0:16:36 ago on Mon 27 May 2019 08:20:55
Available Packages
zip.x86_64 3.0-24.fc30 fedora
Vamos então instalar o pacote zip:
Last metadata expiration check: 0:20:53 ago on Mon 27 May 2019 08:20:55 AM EDT.
Dependencies resolved.
===================================================================================
Package Architecture Version Repository Size
===================================================================================
Installing:
zip x86_64 3.0-24.fc30 fedora 264 k
Transaction Summary
===================================================================================
Install 1 Package
Total download size: 264 k
Installed size: 885 k
Is this ok [y/N]: y
Downloading Packages:
zip-3.0-24.fc30.x86_64.rpm 2.4 MB/s | 264 kB 00:00
-----------------------------------------------------------------------------------
Total 49 kB/s | 264 kB 00:05
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : zip-3.0-24.fc30.x86_64 1/1
Running scriptlet: zip-3.0-24.fc30.x86_64 1/1
Verifying : zip-3.0-24.fc30.x86_64 1/1
Installed:
zip-3.0-24.fc30.x86_64
Complete!
Repare que agora, ao rodar a opção list, o programa vai aparecer como instalado no sistema:
# yum list zip
Last metadata expiration check: 0:21:17 ago on Mon 27 May 2019 08:20:55 AM
Installed Packages
zip.x86_64 3.0-24.fc30 @fedora
Trabalhando com repositórios no yum:
Vejamos as ações mais comuns de instalação, atualização e remoção de pacotes:
» Instalar novo pacote:
# rpm -i nome_do_pacote
» Atualizar um pacote :
# rpm -U nome_do_pacote
» Remover um pacote :
# rpm -e nome_do_pacote
Para refazer o banco de dados RPM:
# rpm --initdb
# rpm --rebuilddb
As opções de consulta de pacotes mais frequentes:
Opção |
Descrição |
-a |
lista todos os pacotes instalados no sistema |
-f arquivo |
lista o nome do pacote que contém o arquivo procurado |
-p pacote |
mostra se um determinado pacote está instalado |
-q pacote |
consulta se pacote está instalado |
-i pacote |
mostra informações extras sobre um determinado pacote |
-l pacote |
mostra lista dos arquivo que um pacote contém |
-R pacote |
mostra lista de dependências que um pacote necessita para ser instalado |
As opções adicionais de instalação e atualização de pacotes mais frequentes são:
Argumento |
Descrição |
--force |
força a instalação de um pacote e seus arquivos, mesmo se ele já estiver instalado. |
-h |
mostra o progresso da instalação |
--nodeps |
desabilita a checagem de dependências para a instalação de um pacote |
-v |
mostra informações extras durante a instalação e atualização dos pacotes (verbose) |
-vv |
mostra muito mais informações durante a instalação e atualização dos pacotes. Geralmente utilizada por desenvolvedores. |
RPM é bem menos usado, pois as dependências precisam ser baixadas manualmente, por exemplo .