GNU/Linux >> Linux Esercitazione >  >> Linux

Gestisci i pacchetti nelle distribuzioni basate su RHEL

Questo articolo descrive come gestire i pacchetti con yum nelle distribuzioni basate su Red Hat® Enterprise Linux®.

Prerequisiti

Devi avere i seguenti prerequisiti:

  • Conoscenza di base di Secure Shell (SSH)
  • Accesso sudo o amministrativo al tuo server
  • Un server cloud che esegue Red Hat Enterprise Linux 6 o successivo o CentOS 6 o successivo

Gestione dei pacchetti in Linux

Il termine gestione dei pacchetti in Linux descrive l'installazione, la rimozione o l'aggiornamento del software sul tuo server Linux. I pacchetti vengono creati utilizzando il codice sorgente che installa un pezzo di software sul tuo server. I pacchetti sono compilati per consentire una facile installazione invece di installare ogni componente dal sorgente.

Strumenti per i pacchetti nelle distribuzioni RHEL

Le distribuzioni basate su RHEL® includono le due seguenti forme di gestione dei pacchetti:

  • rpm è considerato uno strumento di basso livello utilizzato per installare, rimuovere e raccogliere informazioni, nonché per creare pacchetti da installare su un server basato su RHEL.

  • yum è considerato uno strumento di alto livello che ha le stesse funzionalità di rpm ma risolve anche le dipendenze per consentire un'installazione più agevole di .rpm pacchetti.

Nota :Rackspace non supporta l'installazione di pacchetti dal sorgente.

Utilizzo di yum

Il yum tool è il tuo strumento principale per l'installazione e la gestione del software sul tuo server.

Raccogli informazioni

Per vedere i repository da cui yum estrae i pacchetti, esegui il seguente comando:

yum repolist

Questo comando elenca i repository disponibili sul tuo server:

# yum repolist
Loaded plugins: langpacks, product-id, rhnplugin, search-disabled-repos, subscription-manager
This system is receiving updates from RHN Classic or Red Hat Satellite.
repo id                                           repo name                                                                    status
!drivesrvr                                        drivesrvr                                                                        20
epel/x86_64                                       Extra Packages for Enterprise Linux 7 - x86_64                               13,314
ius/x86_64                                        IUS for Enterprise Linux 7 - x86_64                                             609
rackspace                                         Rackspace Monitoring                                                              1
rhel-x86_64-server-7                              Red Hat Enterprise Linux Server (v. 7 for 64-bit x86_64)                     29,118
rhel-x86_64-server-optional-7                     RHEL Server Optional (v. 7 64-bit x86_64)                                    21,287
repolist: 64,3

Per cercare un pacchetto dai tuoi repository, usa il seguente comando:

yum search <package name>

Nota :Questo comando individua tutte le istanze del <package name> che sono disponibili nei tuoi repository. Questo elenco può essere piuttosto dettagliato, quindi usa il nome completo del pacchetto, se lo conosci, per restringere la ricerca.

Per ottenere maggiori informazioni su un pacchetto, utilizzare il comando seguente:

yum info <package name> 

Questo comando fornisce alcune informazioni sul pacchetto. Ecco un esempio di ricerca di httpd pacchetto:

# yum info httpd  
Available Packages
Name         : httpd
Version      : 2.4.43
Release      : 1.fc31
Architecture : x86_64
Size         : 1.4 M
Source       : httpd-2.4.43-1.fc31.src.rpm
Repository   : updates
Summary      : Apache HTTP Server
URL          : https://httpd.apache.org/
License      : ASL 2.0
Description  : The Apache HTTP Server is a powerful, efficient, and extensible web server.

Per vedere i pacchetti attualmente installati, esegui il seguente comando:

yum list installed

Questo comando elenca tutti i pacchetti installati sul sistema. Questo elenco può essere esteso. Se conosci il pacchetto che stai cercando, puoi utilizzare grep per filtrare la tua ricerca come mostrato nell'esempio seguente:

yum list installed | grep httpd

Questo comando fornisce un elenco più gestibile:

# yum list installed | grep httpd
httpd.x86_64                       2.4.6-93.el7            @rhel-x86_64-server-7
httpd-tools.x86_64                 2.4.6-93.el7            @rhel-x86_64-server-

Installa i pacchetti

Per installare un pacchetto, usa il seguente comando:

yum install <package>

Questo comando interroga i tuoi repository e scarica il pacchetto da installare. Durante il processo di installazione, yum tenta di risolvere le dipendenze associate al pacchetto che stai installando. Se yum può risolvere le dipendenze, mostra l'output e ti chiede di confermare l'installazione. L'esempio seguente mostra la risoluzione delle dipendenze:

# yum install httpd
Loaded plugins: langpacks, product-id, rhnplugin, search-disabled-repos, subscription-manager
This system is receiving updates from RHN Classic or Red Hat Satellite.
drivesrvr                                              | 2.9 kB  00:00:00     
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.4.6-93.el7 will be installed
--> Finished Dependency Resolution

Dependencies Resolved

=========================================================================================================================
 Package                  Arch                Version                        Repository                           Size
=========================================================================================================================
Installing:
 httpd                 x86_64                2.4.6-93.el7                   rhel-x86_64-server-7                  1.2 M

Transaction Summary
=========================================================================================================================
Install  1 Package

Total download size: 1.2 M
Installed size: 3.7 M
Is this ok [y/d/N]:

Nota :Quando installi httpd , non sono necessarie altre dipendenze per installare il pacchetto. In altre situazioni, potrebbero essere necessarie dipendenze aggiuntive per l'installazione che yum deve essere installato.Se yum non riesce a risolvere le dipendenze, l'output elenca gli errori. È necessario risolvere queste dipendenze per continuare l'installazione.

Aggiorna pacchetti

Per aggiornare un pacchetto installato, esegui il comando seguente:

yum update <package>

Questo comando ricerca nel repository gli aggiornamenti per il pacchetto specificato, se disponibile.

Se è disponibile un aggiornamento, il comando mostra la modifica e richiede conferma. In caso contrario, ti informa che non c'è niente da fare:

# yum update httpd
Loaded plugins: langpacks, product-id, rhnplugin, search-disabled-repos, subscription-manager
This system is receiving updates from RHN Classic or Red Hat Satellite.
drivesrvr                                                                                     | 2.9 kB  00:00:00     
No packages marked for update 

Puoi anche utilizzare il comando seguente per attivare un aggiornamento per tutti i pacchetti nel sistema:

yum update

Questo comando interroga i repository per eventuali aggiornamenti ai pacchetti installati sul tuo server.

Importante :questo processo tenta di aggiornare tutti i pacchetti sul sistema. Assicurati di aver esaminato il tuo ambiente prima di procedere perché le modifiche potrebbero causare problemi imprevisti con le applicazioni a seguito degli aggiornamenti.

Rimuovi pacchetti

Per rimuovere un pacchetto installato, utilizzare il seguente comando:

yum remove <package name>

Questo comando controlla i pacchetti installati, fornisce l'output e ti chiede di confermare la modifica:

# yum remove httpd
Loaded plugins: langpacks, product-id, rhnplugin, search-disabled-repos, subscription-manager
This system is receiving updates from RHN Classic or Red Hat Satellite.
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.4.6-93.el7 will be erased
--> Processing Dependency: httpd-mmn = 20120211x8664 for package: mod_php73-7.3.18-1.el7.ius.x86_64
--> Running transaction check
---> Package mod_php73.x86_64 0:7.3.18-1.el7.ius will be erased
--> Finished Dependency Resolution
drivesrvr                                                                                      | 2.9 kB  00:00:00     

Dependencies Resolved

======================================================================================================================
 Package                    Arch              Version                        Repository                        Size
======================================================================================================================
Removing:
 httpd                      x86_64            2.4.6-93.el7                  @rhel-x86_64-server-7             3.7 M
Removing for dependencies:
 mod_php73                  x86_64            7.3.18-1.el7.ius              @ius                              4.8 M

Transaction Summary
=======================================================================================================================
Remove  1 Package (+1 Dependent package)

Installed size: 8.6 M
Is this ok [y/N]:

Nota :Quando rimuovi httpd , yum rimuove anche il mod_php73 pacchetto, che dipende da httpd . Assicurati che la rimozione di un pacchetto non influisca negativamente su altre parti del tuo server.

Esamina la cronologia e ripristina le modifiche

In alcuni casi, è necessario rivedere le azioni intraprese con yum strumento.

Per vedere la cronologia di yum utilizzo del comando, esegui il comando seguente:

yum history

Questo comando fornisce un output numerato che mostra le transazioni effettuate da yum .

# yum history
Loaded plugins: langpacks, product-id, rhnplugin, search-disabled-repos, subscription-manager
This system is receiving updates from RHN Classic or Red Hat Satellite.
ID     | Login user               | Date and time    | Action(s)      | Altered
-------------------------------------------------------------------------------
    19 |  <rack>                  | 2020-06-09 14:58 | Install        |    2   
    18 |  <rack>                  | 2020-06-09 14:57 | Erase          |    2   
    17 |  <rack>                  | 2020-06-09 14:56 | Install        |    1   
    16 |  <rack>                  | 2020-06-09 14:55 | Install        |    4   
    15 |  <rack>                  | 2020-06-09 14:55 | Erase          |    2   
    14 |  <rack>                  | 2020-06-09 14:54 | Erase          |    1   
    13 |  <rack>                  | 2020-06-09 14:50 | Install        |    1   
    12 |  <rack>                  | 2020-06-09 14:49 | Erase          |    2   
    11 | root <root>              | 2020-06-09 10:14 | I, U           |    2   
    10 | root <root>              | 2020-06-09 10:14 | Install        |    2 EE
     9 |  <rack>                  | 2020-06-09 10:14 | Install        |    4   
     8 | root <root>              | 2020-06-09 10:14 | Install        |    1 EE
     7 |  <rack>                  | 2020-06-09 10:14 | Install        |    5   
     6 | root <root>              | 2020-06-09 10:13 | Install        |    4   
     5 | root <root>              | 2020-06-09 10:13 | I, U           |   18  <
     4 | System <unset>           | 2020-01-15 13:02 | Install        |    1 > 
     3 | System <unset>           | 2020-01-15 13:02 | Install        |    1   
     2 | System <unset>           | 2020-01-15 13:02 | Erase          |    1   
     1 | System <unset>           | 2020-01-15 12:55 | Install        |  578   
history list

Questo elenco fornisce solo la data, l'azione e il numero del pacchetto modificato. Per ottenere maggiori informazioni su un'azione specifica, puoi interrogare l'ID dalla colonna di sinistra. Utilizzare il comando seguente per visualizzare le informazioni sull'azione:

   yum history info <ID>

L'esecuzione di questo comando fornisce ulteriori informazioni su ciò che è accaduto durante questa transazione:

# yum history info 18
Loaded plugins: langpacks, product-id, rhnplugin, search-disabled-repos, subscription-manager
This system is receiving updates from RHN Classic or Red Hat Satellite.
Transaction ID : 18
Begin time     : Tue Jun  9 14:57:12 2020
Begin rpmdb    : 609:12b0c5cdd97ae2f0a77a06403b7b16f3d404403c
End time       :            14:57:13 2020 (1 seconds)
End rpmdb      : 607:784f813e94127f71465085cd9437377514697243
User           :  <rack>
Return-Code    : Success
Command Line   : remove httpd
Transaction performed with:
    Installed     rpm-4.11.3-40.el7.x86_64                    @anaconda/7.7
    Installed     subscription-manager-1.24.13-3.el7_7.x86_64 @base/7.7
    Installed     yum-3.4.3-167.el7.noarch                    @rhel-x86_64-server-7
    Installed     yum-rhn-plugin-2.0.1-10.el7.noarch          @anaconda/7.7
Packages Altered:
    Erase httpd-2.4.6-93.el7.x86_64         @rhel-x86_64-server-7
    Erase mod_php73-7.3.18-1.el7.ius.x86_64 @ius
history info

Se devi annullare una modifica, devi utilizzare il comando seguente:

yum history undo <ID>

Questo comando fornisce informazioni su cosa cambia questa azione e chiede conferma.

# yum history undo 13
Loaded plugins: langpacks, product-id, rhnplugin, search-disabled-repos, subscription-manager
This system is receiving updates from RHN Classic or Red Hat Satellite.
Undoing transaction 13, from Tue Jun  9 14:50:18 2020
    Install httpd-2.4.6-93.el7.x86_64 @rhel-x86_64-server-7
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.4.6-93.el7 will be erased
--> Processing Dependency: httpd-mmn = 20120211x8664 for package: mod_php73-7.3.18-1.el7.ius.x86_64
--> Running transaction check
---> Package mod_php73.x86_64 0:7.3.18-1.el7.ius will be erased
--> Finished Dependency Resolution
drivesrvr                                                                                        | 2.9 kB  00:00:00     

Dependencies Resolved

======================================================================================================================
 Package                    Arch               Version                        Repository                       Size
======================================================================================================================
Removing:
 httpd                      x86_64           2.4.6-93.el7                 @rhel-x86_64-server-7                3.7 M
Removing for dependencies:
 mod_php73                  x86_64           7.3.18-1.el7.ius             @ius                                 4.8 M

Transaction Summary
======================================================================================================================
Remove  1 Package (+1 Dependent package)

Installed size: 8.6 M
Is this ok [y/N]:

Se desideri annullare tutte le modifiche a una transazione specifica, utilizza il comando seguente:

yum history rollback <ID>

Questo comando mostra cosa cambia questa azione e chiede conferma. A seconda di quanto si desidera eseguire il rollback, questo elenco può essere ampio. L'output è simile al seguente esempio:

# yum history rollback 17
Loaded plugins: langpacks, product-id, rhnplugin, search-disabled-repos, subscription-manager
This system is receiving updates from RHN Classic or Red Hat Satellite.
Rollback to transaction 17, from Tue Jun  9 14:56:03 2020
  Undoing the following transactions: 18, 19
    Reinstall httpd-2.4.6-93.el7.x86_64         @rhel-x86_64-server-7
    Reinstall mod_php73-7.3.18-1.el7.ius.x86_64 @ius
drivesrvr                                                                             | 2.9 kB  00:00:00     
Resolving Dependencies
--> Running transaction check
---> Package httpd.x86_64 0:2.4.6-93.el7 will be reinstalled
---> Package mod_php73.x86_64 0:7.3.18-1.el7.ius will be reinstalled
--> Finished Dependency Resolution

Dependencies Resolved

=====================================================================================================================
 Package                 Arch               Version                        Repository                         Size
=====================================================================================================================
Reinstalling:
 httpd                  x86_64             2.4.6-93.el7                   rhel-x86_64-server-7                1.2 M
 mod_php73              x86_64             7.3.18-1.el7.ius               ius                                 1.6 M

Transaction Summary
=====================================================================================================================
Reinstall  2 Packages

Total download size: 2.8 M
Installed size: 8.6 M
Is this ok [y/d/N]:

Ulteriori informazioni

Ci sono più opzioni disponibili all'interno di yum . Puoi visualizzare i diversi flag e opzioni in Linuxman pagina per yum a questo link:yum man page

Perché il yum comando apporta modifiche al sistema, dovresti sempre assicurarti di aver testato il tuo ambiente prima di installare o aggiornare i pacchetti. Se possibile, assicurati di avere un'immagine utilizzabile su cui eseguire il rollback in caso di problemi post-aggiornamento.


Linux
  1. Come controllare il pacchetto scaricato su Openbsd 5.1?

  2. Come installare e gestire il software su CentOS 7

  3. Guida per principianti alla configurazione di yum

  4. Rimuovere completamente tutti i pacchetti che ho installato?

  5. Come posso abilitare i pacchetti non liberi su Debian?

YUM comandi

Pacchetti software

Come utilizzare APT per gestire i pacchetti su Ubuntu?

Come gestire i pacchetti di hosting su WHM/cPanel?

Come installare e gestire i pacchetti RPM sul sistema Ubuntu/Debian

15 Esempi di comandi Yum Linux:installazione, disinstallazione, aggiornamento dei pacchetti