20 comandi YUM per la gestione dei pacchetti Linux
In questo articolo impareremo come installare, aggiornare, rimuovere, trovare pacchetti, gestire pacchetti e repository su sistemi Linux utilizzando lo strumento YUM (Yellowdog Updater Modified) sviluppato da < forte>Cappello Rosso.
I comandi di esempio mostrati in questo articolo sono stati testati praticamente sul nostro server RHEL 8; puoi utilizzare questi materiali per scopi di studio, certificazioni RHEL o semplicemente per esplorare modi per installare nuovi pacchetti e mantenere aggiornato il tuo sistema.
Il requisito di base di questo articolo è che devi avere una conoscenza di base dei comandi e un sistema operativo Linux funzionante, dove puoi esplorare ed esercitarti con tutti i comandi elencati di seguito.
Cos'è YUM?
YUM (Yellowdog Updater Modified) è uno strumento open source di gestione dei pacchetti a riga di comando e basato su grafica per RPM ( Sistemi Linux basati su RedHat Package Manager).
Consente agli utenti e agli amministratori di sistema di installare, aggiornare, rimuovere o cercare facilmente pacchetti software su un sistema. È stato sviluppato e rilasciato da Seth Vidal sotto GPL (General Public License) come open source, il che significa che chiunque può scaricare e accedi al codice per correggere bug e sviluppare pacchetti personalizzati.
YUM utilizza numerosi repository di terze parti per installare automaticamente i pacchetti risolvendo i problemi relativi alle dipendenze.
Aggiornamento: il comando yum è sostituito dal comando dnf, che è una versione di prossima generazione di yum e considerato il sostituto di YUM nella maggior parte delle distribuzioni basate su RPM più recenti.
1. Installa un pacchetto con YUM
Per installare un pacchetto chiamato Firefox, esegui semplicemente il comando seguente che troverà e installerà automaticamente tutte le dipendenze richieste per 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!
Il comando precedente richiederà conferma prima di installare qualsiasi pacchetto sul tuo sistema. Se desideri installare i pacchetti automaticamente senza chiedere alcuna conferma, utilizza l'opzione -y
come mostrato nell'esempio seguente.
yum -y install firefox
2. Rimuovere un pacchetto con YUM
Per rimuovere completamente un pacchetto con tutte le dipendenze, è sufficiente eseguire il comando seguente come mostrato di seguito.
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!
Allo stesso modo, il comando precedente chiederà conferma prima di rimuovere un pacchetto. Per disabilitare la richiesta di conferma basta aggiungere l'opzione -y
come mostrato di seguito.
yum -y remove firefox
3. Aggiornamento di un pacchetto utilizzando YUM
Supponiamo che tu abbia una versione obsoleta del pacchetto MySQL e desideri aggiornarla all'ultima versione stabile. Basta eseguire il seguente comando per risolvere automaticamente tutti i problemi di dipendenza e installarli.
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. Elenca un pacchetto utilizzando YUM
Utilizza la funzione elenco per cercare il pacchetto specifico con un nome. Ad esempio, per cercare un pacchetto chiamato OpenSSH, utilizza il 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
Per rendere la tua ricerca più accurata, definisci i nomi dei pacchetti con la loro versione, nel caso lo sapessi. Ad esempio, per cercare una versione specifica OpenSSH-4.3p2 del pacchetto, utilizza il comando.
yum list openssh-4.3p2
5. Cerca un pacchetto utilizzando YUM
Se non ricordi il nome esatto del pacchetto, utilizza la funzione cerca per cercare tutti i pacchetti disponibili in modo che corrispondano al nome del pacchetto specificato. Ad esempio, per cercare tutti i pacchetti che corrispondono alla parola.
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. Ottieni informazioni su un pacchetto utilizzando YUM
Supponiamo che desideri conoscere le informazioni su un pacchetto prima di installarlo. Per ottenere informazioni su un pacchetto è sufficiente eseguire il comando seguente.
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. Elenca tutti i pacchetti disponibili utilizzando YUM
Per elencare tutti i pacchetti disponibili nel database Yum, utilizzare il comando seguente.
yum list | less
8. Elenca tutti i pacchetti installati utilizzando YUM
Per elencare tutti i pacchetti installati su un sistema, basta eseguire il comando seguente, verranno visualizzati tutti i pacchetti installati.
yum list installed | less
9. Yum fornisce la funzione
La funzione Yum fornisce viene utilizzata per trovare a quale pacchetto appartiene un file specifico. Ad esempio, se desideri conoscere il nome del pacchetto che contiene /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. Controlla gli aggiornamenti disponibili utilizzando Yum
Per scoprire quanti pacchetti installati sul tuo sistema hanno aggiornamenti disponibili, seleziona per utilizzare il seguente comando.
yum check-update
11. Aggiorna il sistema utilizzando Yum
Per mantenere il tuo sistema aggiornato con tutti gli aggiornamenti di sicurezza e dei pacchetti binari, esegui il comando seguente. Installerà tutte le patch e gli aggiornamenti di sicurezza più recenti sul tuo sistema.
yum update
12. Elenca tutti i pacchetti di gruppo disponibili
In Linux, un certo numero di pacchetti sono raggruppati in un particolare gruppo. Invece di installare pacchetti individuali con yum, puoi installare un gruppo particolare che installerà tutti i pacchetti correlati che appartengono al gruppo. Ad esempio per elencare tutti i gruppi disponibili è sufficiente eseguire il comando seguente.
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. Installa i pacchetti di gruppo
Per installare un particolare gruppo di pacchetti, utilizziamo l'opzione come groupinstall. Ad esempio, per installare "MySQL Database", basta eseguire il comando seguente.
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. Aggiorna i pacchetti di un gruppo
Per aggiornare eventuali pacchetti di gruppo installati esistenti, è sufficiente eseguire il comando seguente come mostrato di seguito.
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. Rimuovere i pacchetti di gruppo
Per eliminare o rimuovere qualsiasi gruppo installato esistente dal sistema, è sufficiente utilizzare il comando seguente.
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. Elenca i repository Yum abilitati
Per elencare tutti i repository Yum abilitati nel tuo sistema, utilizza la seguente opzione.
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. Elenca tutti i repository Yum abilitati e disabilitati
Il seguente comando visualizzerà tutti i repository yum abilitati e disabilitati sul 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. Installa un pacchetto da un repository specifico
Per installare un particolare pacchetto da uno specifico repository abilitato o disabilitato, devi utilizzare un'opzione --enablerepo
nel tuo comando yum. Ad esempio per installare il pacchetto PhpMyAdmin basta eseguire il 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. Yum Shell interattivo
L'utilità Yum fornisce una shell personalizzata in cui è possibile eseguire più comandi.
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. Pulisci la cache di Yum
Per impostazione predefinita, yum mantiene tutti i dati dei pacchetti abilitati per il repository in /var/cache/yum/ con ciascuna sottodirectory. Per pulire tutti i file memorizzati nella cache dal repository abilitato, è necessario eseguire regolarmente il seguente comando per pulisci tutta la cache e assicurati che non venga utilizzato spazio non necessario. Non vogliamo fornire l'output del comando seguente, perché ci piace mantenere i dati memorizzati nella cache così come sono.
yum clean all
20. Visualizza la cronologia di Yum
Per visualizzare tutte le transazioni passate del comando yum, basta utilizzare il seguente 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
Abbiamo cercato di coprire tutti i comandi base per far avanzare yum con i loro esempi. Se qualcosa relativo ai comandi yum potrebbe essersi perso. Ti preghiamo di aggiornarci tramite la nostra casella dei commenti. Pertanto, continuiamo ad aggiornare lo stesso in base al feedback ricevuto.