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 praticamente testados em nosso servidor RHEL 8, você pode usar esses materiais para fins de estudo, certificações RHEL, ou apenas para explorar maneiras de instalar novos pacotes e manter seu sistema atualizado.
O requisito básico deste artigo é ter um entendimento básico de comandos e um sistema operacional Linux funcional, onde você pode explorar e praticar todos os comandos listados abaixo.
O que é o YUM?
O YUM (Yellowdog Updater Modified) é uma ferramenta de gerenciamento de pacotes de código aberto baseada em linha de comando e também baseada em gráficos para sistemas Linux baseados em RPM (RedHat Package Manager).
Permite aos usuários e administradores do sistema instalar, atualizar, remover ou pesquisar pacotes de software em um sistema. Foi desenvolvido e lançado por Seth Vidal sob a Licença Pública Geral (GPL) como um 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 vários repositórios de terceiros para instalar pacotes automaticamente, resolvendo seus problemas de dependências.
Atualização: O comando yum é 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 novas distribuições baseadas em RPM.
1. Instalar um Pacote com YUM
Para instalar um pacote chamado Firefox, basta executar o comando abaixo, 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 pedirá confirmação antes de instalar qualquer pacote em seu sistema. Se desejar instalar pacotes automaticamente sem pedir confirmação, use a opção -y
como mostrado no exemplo abaixo.
# 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!
Da mesma forma, 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 versão estável mais recente. Basta executar o seguinte comando, que automaticamente resolverá todas as questões de dependência 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 Proteger e Fortalecer o 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 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 o YUM
Digamos que você gostaria de saber 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 o YUM
Para listar todos os pacotes disponíveis na base de dados do Yum, use o comando abaixo.
# yum list | less
8. Listar todos os pacotes instalados usando o 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 o 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 o 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 seguinte comando conforme 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 no 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 --enablerepo
uma 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 Yum
A utilitária Yum fornece um shell personalizado onde você pode executar vários 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 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 regularmente o seguinte comando para limpar todo o cache e garantir que não haja espaço desnecessário sendo usado. Não queremos fornecer 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 ver 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 yum foi esquecido, por favor atualize-nos através da caixa de comentários. Assim, continuamos atualizando com base no feedback recebido.
Source:
https://www.tecmint.com/20-linux-yum-yellowdog-updater-modified-commands-for-package-mangement/