20 Comandos Linux YUM (Yellowdog Updater, Modified) para Gerenciamento de Pacotes

Neste artigo, aprenderemos como instalar, atualizar, remover, encontrar pacotes, gerenciar pacotes e repositórios em sistemas Linux usando a ferramenta YUM (Yellowdog Updater Modified) desenvolvida pela RedHat.

Os comandos de exemplo mostrados neste artigo são testados na prática em nosso servidor RHEL 8, você pode usar esses materiais para fins de estudo, certificações RHEL, ou apenas para explorar formas de instalar novos pacotes e manter seu sistema atualizado.

O requisito básico deste artigo é que você tenha um entendimento básico de comandos e um sistema operacional Linux funcionando, onde você pode explorar e praticar todos os comandos listados abaixo.

O que é YUM?

YUM (Yellowdog Updater Modified) é uma ferramenta de gerenciamento de pacotes de código aberto baseada em linha de comando e também gráfica para sistemas Linux baseados em RPM (RedHat Package Manager).

Permite que os usuários e administradores de sistema instalem, atualizem, removam ou pesquisem pacotes de software em um sistema. Foi desenvolvido e lançado por Seth Vidal sob a GPL (Licença Pública Geral) como um software de código aberto, o que significa que qualquer pessoa pode baixar e acessar o código para corrigir bugs e desenvolver pacotes personalizados.

O YUM utiliza numerosos repositórios de terceiros para instalar pacotes automaticamente, resolvendo seus problemas de dependências.

Atualização: O comando yum foi substituído pelo comando dnf, que é uma versão de próxima geração do yum e considerado o substituto do YUM na maioria das distribuições mais recentes baseadas em RPM.

1. Instalar um Pacote com YUM

Para instalar um pacote chamado Firefox, basta executar o comando abaixo que ele encontrará e instalará automaticamente todas as dependências necessárias para o Firefox.

# yum install firefox
Loaded plugins: fastestmirror
Dependencies Resolved

================================================================================================
 Package                    Arch        Version                    Repository            Size        
================================================================================================
Updating:
firefox                        i686        10.0.6-1.el6.centos     updates             20 M
Updating for dependencies:
 xulrunner                     i686        10.0.6-1.el6.centos     updates             12 M

Transaction Summary
================================================================================================
Install       0 Package(s)
Upgrade       2 Package(s)

Total download size: 32 M
Is this ok [y/N]: y
Downloading Packages:
(1/2): firefox-10.0.6-1.el6.centos.i686.rpm                                |  20 MB   01:10
(2/2): xulrunner-10.0.6-1.el6.centos.i686.rpm                              |  12 MB   00:52
------------------------------------------------------------------------------------------------
Total                                                           63 kB/s |  32 MB   02:04

Updated:
  firefox.i686 0:10.0.6-1.el6.centos

Dependency Updated:
  xulrunner.i686 0:10.0.6-1.el6.centos

Complete!

O comando acima solicitará confirmação antes de instalar qualquer pacote em seu sistema. Se deseja instalar pacotes automaticamente sem pedir confirmação, use a opção -y como mostrado no exemplo abaixo.2. Removendo um Pacote com YUM

# yum -y install firefox

2. Removendo um Pacote com YUM

Para remover um pacote completamente com todas as dependências, basta executar o seguinte comando conforme mostrado abaixo.

# yum remove firefox
Loaded plugins: fastestmirror
Setting up Remove Process
Resolving Dependencies
--> Running transaction check
---> Package firefox.i686 0:10.0.6-1.el6.centos set to be erased
--> Finished Dependency Resolution

Dependencies Resolved

====================================================================================================
 Package                    Arch        Version                        Repository            Size        
====================================================================================================
Removing:
 firefox                    i686        10.0.6-1.el6.centos            @updates              23 M

Transaction Summary
====================================================================================================
Remove        1 Package(s)
Reinstall     0 Package(s)
Downgrade     0 Package(s)

Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Erasing        : firefox-10.0.6-1.el6.centos.i686                                                                                                                          1/1

Removed:
  firefox.i686 0:10.0.6-1.el6.centos

Complete!

Do mesmo modo, o comando acima solicitará confirmação antes de remover um pacote. Para desativar o prompt de confirmação, basta adicionar a opção -y conforme mostrado abaixo.

# yum -y remove firefox

3. Atualizando um Pacote usando YUM

Digamos que você tenha uma versão desatualizada do pacote MySQL e deseja atualizá-lo para a última versão estável. Basta executar o seguinte comando, que automaticamente resolverá todas as questões de dependências e as instalará.

# yum update mysql
Loaded plugins: fastestmirror
Dependencies Resolved

============================================================================================================
 Package            Arch                Version                    Repository                    Size
============================================================================================================
Updating:
 vsftpd             i386                2.0.5-24.el5_8.1           updates                       144 k

Transaction Summary
============================================================================================================
Install       0 Package(s)
Upgrade       1 Package(s)

Total size: 144 k
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Updating       : vsftpd                                                                     1/2
  Cleanup        : vsftpd                                                                     2/2

Updated:
  vsftpd.i386 0:2.0.5-24.el5_8.1

Complete!

4. Listar um Pacote usando YUM

Use a função list para pesquisar o pacote específico com um nome. Por exemplo, para pesquisar um pacote chamado OpenSSH, use o comando.

# yum list openssh
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.neu.edu.cn
 * epel: mirror.neu.edu.cn
 * extras: mirror.neu.edu.cn
 * rpmforge: mirror.nl.leaseweb.net
 * updates: mirror.nus.edu.sg
Installed Packages
openssh.i386                                       4.3p2-72.el5_6.3                                                                      installed
Available Packages                                 4.3p2-82.el5                                                                          base

Para tornar sua pesquisa mais precisa, defina os nomes dos pacotes com suas versões, caso você saiba. Por exemplo, para pesquisar uma versão específica OpenSSH-4.3p2 do pacote, use o comando.

# yum list openssh-4.3p2

[ Você também pode gostar: Como Segurar e Fortalecer um Servidor OpenSSH ]

5. Pesquisar um Pacote usando YUM

Se você não se lembra do nome exato do pacote, então use a função de pesquisa para pesquisar todos os pacotes disponíveis para corresponder ao nome do pacote que você especificou. Por exemplo, para pesquisar todos os pacotes que correspondem à palavra.

# yum search vsftpd
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.neu.edu.cn
 * epel: mirror.neu.edu.cn
 * extras: mirror.neu.edu.cn
 * rpmforge: mirror.nl.leaseweb.net
 * updates: ftp.iitm.ac.in
============================== Matched: vsftpd ========================
ccze.i386 : A robust log colorizer
pure-ftpd-selinux.i386 : SELinux support for Pure-FTPD
vsftpd.i386 : vsftpd - Very Secure Ftp Daemon

6. Obter informações sobre um pacote usando YUM

Digamos que você gostaria de saber as informações sobre um pacote antes de instalá-lo. Para obter informações sobre um pacote, basta emitir o comando abaixo.

# yum info firefox
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirror.neu.edu.cn
 * epel: mirror.neu.edu.cn
 * extras: mirror.neu.edu.cn
 * rpmforge: mirror.nl.leaseweb.net
 * updates: ftp.iitm.ac.in
Available Packages
Name       : firefox
Arch       : i386
Version    : 10.0.6
Release    : 1.el5.centos
Size       : 20 M
Repo       : updates
Summary    : Mozilla Firefox Web browser
URL        : http://www.mozilla.org/projects/firefox/
License    : MPLv1.1 or GPLv2+ or LGPLv2+
Description: Mozilla Firefox is an open-source web browser, designed for standards
           : compliance, performance and portability.

7. Listar todos os pacotes disponíveis usando YUM

Para listar todos os pacotes disponíveis na base de dados Yum, use o comando abaixo.

# yum list | less

8. Listar todos os pacotes instalados usando YUM

Para listar todos os pacotes instalados em um sistema, basta emitir o comando abaixo, ele exibirá todos os pacotes instalados.

# yum list installed | less

9. Função Yum Provides

A função provides do Yum é usada para descobrir qual pacote pertence a um arquivo específico. Por exemplo, se você gostaria de saber o nome do pacote que possui o /etc/httpd/conf/httpd.conf.

# yum provides /etc/httpd/conf/httpd.conf
Loaded plugins: fastestmirror
httpd-2.2.3-63.el5.centos.i386 : Apache HTTP Server
Repo        : base
Matched from:
Filename    : /etc/httpd/conf/httpd.conf

httpd-2.2.3-63.el5.centos.1.i386 : Apache HTTP Server
Repo        : updates
Matched from:
Filename    : /etc/httpd/conf/httpd.conf

httpd-2.2.3-65.el5.centos.i386 : Apache HTTP Server
Repo        : updates
Matched from:
Filename    : /etc/httpd/conf/httpd.conf

httpd-2.2.3-53.el5.centos.1.i386 : Apache HTTP Server
Repo        : installed
Matched from:
Other       : Provides-match: /etc/httpd/conf/httpd.conf

10. Verificar atualizações disponíveis usando Yum

Para descobrir quantos pacotes instalados em seu sistema têm atualizações disponíveis, verifique usando o seguinte comando.

# yum check-update

11. Atualizar o sistema usando Yum

Para manter seu sistema atualizado com todas as atualizações de segurança e pacotes binários, execute o seguinte comando. Ele instalará todas as últimas correções e atualizações de segurança em seu sistema.

# yum update

12. Listar todos os pacotes de grupo disponíveis

No Linux, vários pacotes são agrupados em um grupo específico. Em vez de instalar pacotes individuais com o yum, você pode instalar um grupo específico que instalará todos os pacotes relacionados pertencentes ao grupo. Por exemplo, para listar todos os grupos disponíveis, basta emitir o seguinte comando.

# yum grouplist
Installed Groups:
   Administration Tools
   DNS Name Server
   Dialup Networking Support
   Editors
   Engineering and Scientific
   FTP Server
   Graphics
   Java Development
   Legacy Network Server
Available Groups:
   Authoring and Publishing
   Base
   Beagle
   Cluster Storage
   Clustering
   Development Libraries
   Development Tools
   Eclipse
   Educational Software
   KDE (K Desktop Environment)
   KDE Software Development

13. Instalar Pacotes de Grupo

Para instalar um grupo de pacotes específico, usamos a opção como groupinstall. Por exemplo, para instalar ” MySQL Database “, basta executar o comando abaixo.

# yum groupinstall 'MySQL Database'
Dependencies Resolved

=================================================================================================
Package								Arch      Version			 Repository        Size
=================================================================================================
Updating:
 unixODBC                           i386      2.2.11-10.el5      base              290 k
Installing for dependencies:
 unixODBC-libs                      i386      2.2.11-10.el5      base              551 k

Transaction Summary
=================================================================================================
Install       1 Package(s)
Upgrade       1 Package(s)

Total size: 841 k
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing     : unixODBC-libs	1/3
  Updating       : unixODBC         2/3
  Cleanup        : unixODBC         3/3

Dependency Installed:
  unixODBC-libs.i386 0:2.2.11-10.el5

Updated:
  unixODBC.i386 0:2.2.11-10.el5

Complete!

14. Atualizar Pacotes de Grupo

Para atualizar quaisquer pacotes de grupo instalados existentes, basta executar o comando a seguir como mostrado abaixo.

# yum groupupdate 'DNS Name Server'

Dependencies Resolved
================================================================================================================
 Package			Arch	        Version				Repository           Size
================================================================================================================
Updating:
 bind                           i386            30:9.3.6-20.P1.el5_8.2          updates              981 k
 bind-chroot                    i386            30:9.3.6-20.P1.el5_8.2          updates              47 k
Updating for dependencies:
 bind-libs                      i386            30:9.3.6-20.P1.el5_8.2          updates              864 k
 bind-utils                     i386            30:9.3.6-20.P1.el5_8.2          updates              174 k

Transaction Summary
================================================================================================================
Install       0 Package(s)
Upgrade       4 Package(s)

Total size: 2.0 M
Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Updating       : bind-libs            1/8
  Updating       : bind                 2/8
  Updating       : bind-chroot          3/8
  Updating       : bind-utils           4/8
  Cleanup        : bind                 5/8
  Cleanup        : bind-chroot          6/8
  Cleanup        : bind-utils           7/8
  Cleanup        : bind-libs            8/8

Updated:
  bind.i386 30:9.3.6-20.P1.el5_8.2                  bind-chroot.i386 30:9.3.6-20.P1.el5_8.2

Dependency Updated:
  bind-libs.i386 30:9.3.6-20.P1.el5_8.2             bind-utils.i386 30:9.3.6-20.P1.el5_8.2

Complete!

15. Remover Pacotes de Grupo

Para excluir ou remover qualquer grupo instalado existente do sistema, basta usar o comando abaixo.

# yum groupremove 'DNS Name Server'

Dependencies Resolved

===========================================================================================================
 Package                Arch              Version                         Repository          Size
===========================================================================================================
Removing:
 bind                   i386              30:9.3.6-20.P1.el5_8.2          installed           2.1 M
 bind-chroot            i386              30:9.3.6-20.P1.el5_8.2          installed           0.0

Transaction Summary
===========================================================================================================
Remove        2 Package(s)
Reinstall     0 Package(s)
Downgrade     0 Package(s)

Is this ok [y/N]: y
Downloading Packages:
Running rpm_check_debug
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Erasing        : bind                                                   1/2
warning: /etc/sysconfig/named saved as /etc/sysconfig/named.rpmsave
  Erasing        : bind-chroot                                            2/2

Removed:
  bind.i386 30:9.3.6-20.P1.el5_8.2                                        bind-chroot.i386 30:9.3.6-20.P1.el5_8.2

Complete!

16. Listar Repositórios Yum Habilitados

Para listar todos os repositórios Yum habilitados em seu sistema, use a seguinte opção.

# yum repolist

repo id                     repo name                                            status
base                        CentOS-5 - Base                                      enabled:  2,725
epel                        Extra Packages for Enterprise Linux 5 - i386         enabled:  5,783
extras                      CentOS-5 - Extras                                    enabled:    282
mod-pagespeed               mod-pagespeed                                        enabled:      1
rpmforge                    RHEL 5 - RPMforge.net - dag                          enabled: 11,290
updates                     CentOS-5 - Updates                                   enabled:    743
repolist: 20,824

16. Listar todos os Repositórios Yum Habilitados e Desabilitados

O seguinte comando exibirá todos os repositórios yum habilitados e desabilitados no sistema.

# yum repolist all

repo id                     repo name                                            status
C5.0-base                   CentOS-5.0 - Base                                    disabled
C5.0-centosplus             CentOS-5.0 - Plus                                    disabled
C5.0-extras                 CentOS-5.0 - Extras                                  disabled
base                        CentOS-5 - Base                                      enabled:  2,725
epel                        Extra Packages for Enterprise Linux 5 - i386         enabled:  5,783
extras                      CentOS-5 - Extras                                    enabled:    282
repolist: 20,824

17. Instalar um Pacote de um Repositório Específico

Para instalar um pacote específico de um repositório habilitado ou desabilitado, você deve usar o --enablerepo opção em seu comando yum. Por exemplo, para Instalar o PhpMyAdmin pacote, basta executar o comando.

# yum --enablerepo=epel install phpmyadmin

Dependencies Resolved
=============================================================================================
 Package                Arch           Version            Repository           Size
=============================================================================================
Installing:
 phpMyAdmin             noarch         3.5.1-1.el6        epel                 4.2 M

Transaction Summary
=============================================================================================
Install       1 Package(s)

Total download size: 4.2 M
Installed size: 17 M
Is this ok [y/N]: y
Downloading Packages:
phpMyAdmin-3.5.1-1.el6.noarch.rpm                       | 4.2 MB     00:25
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing : phpMyAdmin-3.5.1-1.el6.noarch             1/1
  Verifying  : phpMyAdmin-3.5.1-1.el6.noarch             1/1

Installed:
  phpMyAdmin.noarch 0:3.5.1-1.el6

Complete!

18. Shell Interativo do Yum

A utilitária Yum fornece um shell personalizado onde você pode executar múltiplos comandos.

# yum shell
Loaded plugins: fastestmirror
Setting up Yum Shell
> update httpd
Loading mirror speeds from cached hostfile
 * base: mirrors.sin3.sg.voxel.net
 * epel: ftp.riken.jp
 * extras: mirrors.sin3.sg.voxel.net
 * updates: mirrors.sin3.sg.voxel.net
Setting up Update Process
>

19. Limpar o Cache do Yum

Por padrão, o yum mantém todos os dados de pacotes do repositório habilitado em /var/cache/yum/ com cada subdiretório. Para limpar todos os arquivos em cache do repositório habilitado, você precisa executar o seguinte comando regularmente para limpar todo o cache e garantir que não haja espaço desnecessário sendo utilizado. Não queremos dar a saída do comando abaixo, porque gostamos de manter os dados em cache como estão.

# yum clean all

20. Ver Histórico do Yum

Para visualizar todas as transações passadas do comando yum, basta usar o seguinte comando.

# yum history

Loaded plugins: fastestmirror
ID     | Login user               | Date and time    | Action(s)      | Altered
-------------------------------------------------------------------------------
    10 | root               | 2012-08-11 15:19 | Install        |    3
     9 | root               | 2012-08-11 15:11 | Install        |    1
     8 | root               | 2012-08-11 15:10 | Erase          |    1 EE
     7 | root               | 2012-08-10 17:44 | Install        |    1
     6 | root               | 2012-08-10 12:19 | Install        |    2
     5 | root               | 2012-08-10 12:14 | Install        |    3
     4 | root               | 2012-08-10 12:12 | I, U           |   13 E<
     3 | root               | 2012-08-09 13:01 | Install        |    1 >
     2 | root               | 2012-08-08 20:13 | I, U           |  292 EE
     1 | System            | 2012-08-08 17:15 | Install        |  560
history list

Tentamos cobrir todos os comandos básicos a avançados do yum com seus exemplos. Se algo relacionado aos comandos do yum pode ter sido esquecido. Por favor, atualize-nos através da caixa de comentários. Assim, continuamos atualizando o mesmo com base no feedback recebido.

Source:
https://www.tecmint.com/20-linux-yum-yellowdog-updater-modified-commands-for-package-mangement/