102.5 Gerenciamento de pacotes RedHat
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.
RPM
O rpm
é o gerenciador de pacotes locais na máquina, não podendo efetuar a instalação de pacotes que estejam em reposítorios online.
A sintaxe das opções é -q de --query
mais uma letra, que é a representação resumida, tipo -qa é igual a --query --all
, -qi é --query --install
, -ql é --query --list
, -qc é --query --configfiles
.
Opções:
Comando | Descrição |
---|---|
rpm -qa | Mostra os pacotes instalados. (--all) |
rpm -qi (pacote.rpm) ou (pacote) | Mostra informações do pacote. |
rpm -ql (pacote) | Mostra os arquivos contidos dentro do pacote, seja .rpm ou instalado. (-l,--list) |
rpm -qc (pacote) | Mostra arquivos de configuração seja .rpm ou instalado.(--configfiles) |
rpm -qd (pacote) | Mostra arquivos de documentação seja .rpm ou instalado. (-d,--docfiles) |
rpm -qf (file) | Mostra qual pacote gerou esse arquivo. (--file) |
rpm -qlp (pacote.rpm) | Lista os arquivos do pacote, igual rpm -ql . (--package)O p no meio fa flag informa que o pacote ainda não está instalado e habilita o auto-completion |
rpm -i (pacote.rpm) | Instala o pacote. (--install) |
rpm -U (pacote.rpm) | Faz um upgrade do pacote. (--upgrade). Se não houver uma versão anterior do PACKAGENAME , uma nova cópia será instalada. Para evitar isso e apenas atualizar um pacote que esteja instalado, use a opção -F . |
Os parâmetros devem ser usados com as opções acima | |
-v | Verbose. |
-h | Progresso da instalação. (--hash, use com -v) |
--nodeps (pacote.rpm) | Ignora dependências. |
--force (pacote.rpm) | Força a instalação. |
--test (pacote.rpm) | Testa a instalação, mas nao instala. |
-e (pacote) | Desinstala o pacote (e=--erase). Pode ser usado direto com rpm. |
--checksig (pacote.rpm) | Verifica o signatures (pode ser usado direto com rpm) |
-V (pacote.rpm) | Trás algumas informações do pacote como libs, dependências insatisfeitas, mostra arquivos de documentação, de configuração entre outros Se não tiver nada OK, se tiver OK não vai exibir nada. |
--verify (pacote.rpm) ou (pacote) | Exibe informações sobre alteração nos arquivos. Segue o que ele pode exibir, são coisas que ele monitora nos arquivos do pacote: S file Size differs M Mode differs (includes permissions and file type) 5 digest (formerly MD5 sum) differs D Device major/minor number mismatch L readLink(2) path mismatch U User ownership differs G Group ownership differs T mTime differs P caPabilities differ |
-qR (pacote) ou (pacote.rpm) | Mostra apenas as dependências. (--requires) |
YUM
O gerenciador yum
é usado para fazer o gerenciamento de pacotes online.
Os arquivos de configuração do yum ficam em /etc/yum.conf
e /etc/yum.repos.d
(aqui ficam os mirros do CentOS).
Comandos | Descrição |
---|---|
yum update | Atualiza todos os pacotes (diferente do Debian). |
yum upgrade | Mesma coisa acima, mas remove pacotes marcados como obsoletos. (perigoso) |
yum install (pacote) | Instala um pacote. |
yum check-update | Igual apt-get update (atualiza os mirrors). |
yum list --installed | Lista tudo que está instalado. |
yum search (pacote) | Busca por um pacote. |
yum remove (pacote) | Remove um pacote. |
yum erase (pacote) | Remove um pacote e os arquivos de configuração. |
yum install --downloadonly (pacote) | Apenas baixa num diretório temporário, pode usar a opção --downloaddir=Diretório para salvar nesse diretório. |
yum whatprovides (arquivo) | Mostra qual pacote fornece esse arquivo, pode ser um pacote, uma lib. |
yum info (pacote) | Obtém informações sobre um pacote. |
Repository
Para o yum
, os "repos" estão listados no diretório /etc/yum.repos.d/
. Cada repositório é representado por um arquivo .repo
, como CentOS-Base.repo
.
Repositórios adicionais podem ser incluídos pelo usuário acrescentando um arquivo .repo
no diretório mencionado acima, ou no final de /etc/yum.conf
. No entanto, a maneira recomendada de adicionar ou gerenciar repositórios é usar a ferramenta yum-config-manager
.
Para adicionar um repositório, use o parâmetro --add-repo
, seguido da URL para um arquivo .repo
.
yum-config-manager --add-repo https://rpms.remirepo.net/enterprise/remi.repo
Para obter uma lista de todos os repositórios disponíveis, use yum repolist all
. A saída obtida será semelhante a esta:
Habilitando e Desabilitando Repos:
# Desabilitando:
$ sudo yum-config-manager --disable powertools
# Habilitando:
$ sudo yum-config-manager --enable powertools
O Yum armazena os pacotes baixados e os metadados associados em um diretório de cache (geralmente
/var/cache/yum
). À medida que o sistema é atualizado e novos pacotes são instalados, essa cache pode ficar bem grande. Para limpar a cache e recuperar o espaço em disco, podemos usar o comandoyum clean
, seguido pelo que deve ser removido. Os parâmetros mais úteis sãopackages
(yum clean packages
) para excluir pacotes baixados emetadata
(yum clean metadata
) para excluir os metadados associados. Consulte a página de manual doyum
(digiteman yum
) para obter mais informações.
DNF
É o mesmo gerenciador que o yum, mas possui um melhor desempenho, melhor consumo de memória ram e melhor resoluçõa de dependências. Ambos os comandos yum
e dnf
são links para o verdadeiro comando (binário) chamado dnf-3
no CentOS 8, esse novo binário tem a mesma função do yum, só muda o nome e o backend do binário, inclusive as opções são as mesmas.
# Verificando o yum:
[vagrant@centos8 ~]$ ls -lh /usr/bin/yum
lrwxrwxrwx. 1 root root 5 Aug 4 2020 /usr/bin/yum -> dnf-3
# Verificando o DNF:
[vagrant@centos8 ~]$ ls -lh /usr/bin/dnf
lrwxrwxrwx. 1 root root 5 Aug 4 2020 /usr/bin/dnf -> dnf-3
# Verificando o binário dnf-3:
[vagrant@centos8 ~]$ ls -lh /usr/bin/dnf-3
-rwxr-xr-x. 1 root root 2.0K Aug 4 2020 /usr/bin/dnf-3
Para adicionar um repositório, use dnf config-manager --add_repo URL
, onde URL
é a URL completa do repositório. Para habilitar um repositório, use dnf config-manager --set-enabled REPO_ID
.
Da mesma forma, para desativar um repositório, use dnf config-manager --set-disabled REPO_ID
. Nos dois casos, REPO_ID
é o ID exclusivo do repositório, que pode ser obtido com dnf repolist
. Os repositórios adicionados são ativados por padrão. Os repositórios são armazenados em arquivos .repo
no diretório /etc/yum.repos.d/
, com exatamente a mesma sintaxe usada para o yum
.
Zypper
O gerenciador zypper
é usado para fazer o gerenciamento de pacotes online. Como distros Suse e baseadas também usam pacotes .rpm, vamos ver um pouco da sintaxe do gerenciador de pacotes usado em distros Suse.
Comandos:
Comandos | Descrição |
---|---|
zypper (repos ou ls) | Lista os repositórios atuais. Os repos ficam em /etc/zypper/repos.d/ |
zypper install (pacote) | Instala o pacote. |
zypper remove (pacote) | Remove o pacote. |
zypper verify (pacote) | Verifica a integridade. |
zypper update | Atualiza todos os pacotes. |
zypper list-update | Lista as atualizações |
zypper refresh | Mesmo que update no Debian. |
zypper dist-upgrade | Usado para fazer uma atualização da Distribuição Linux. |
zypper search (pacote) | Pesquisa pelo pacote |
zypper info (pacote) | Exibe informações de um pacote específico |
zypper search --provides (arquivo) | Para ver quais pacotes contêm um arquivo específico |
zypper search -i (pacote) | Confere se o pacote esta instalado. |