Introduzione alla gestione dei pacchetti RPM/Yum

Introduzione alla gestione dei pacchetti RPM/Yum
Red Hat Package Manager è l'utilità di gestione dei pacchetti open source predefinita costruita su General Public License (GPU). Il sistema di gestione dei pacchetti è per tutti i derivati ​​Linux a base di Red Hat come Fedora, RHEL e CENTOS. RPM facilita gli amministratori di sistema con le cinque modalità di base delle operazioni di gestione dei pacchetti: installazione, aggiornamento, rimozione, interrogazione e verifica dei pacchetti.

Inoltre, l'aggiornamento di YellowDog Modified (YUM) è a RPM quale strumento di gestione dei pacchetti APT è per l'utilità DPKG nel sistema di imballaggio Debian: risolve i problemi di dipendenza del pacchetto di RPM. In questa guida, introdurremo brevemente Yum. Considerando che avremo un'introduzione approfondita e uno sfondo al sistema di imballaggio RPM per Red Hat Linux Distribuzioni.

Sfondo

Nei giorni precedenti di Linux, nel sistema sono stati inclusi software/programmi compilando il codice sorgente in binari eseguibili. A volte venivano compilati sotto forma di un pacchetto noto come tarball contenente più file. Dopo l'installazione del software da un Tarball, tutti i file, i documenti, i file di configurazione e le librerie eseguibili si diffondono nel sistema in directory pertinenti.

Tuttavia, questo modo di inclusione dell'applicazione ha i suoi limiti:

  • Incapacità dell'utente di trovare documenti del programma e file di configurazione.
  • Difficoltà a trovare le dipendenze richieste del programma.
  • Richiede all'utente di individuare e rimuovere ogni file di programma individualmente.
  • Non ha contenuto i metadati: quindi, dopo l'installazione, gli utenti non erano a conoscenza della versione del programma e di altri dettagli.

Da allora, le distribuzioni Linux hanno coperto molto fornendo software a complessi programmi predefiniti noti come pacchetti. Quindi, tutte le distribuzioni Linux hanno seguito due formato di imballaggio principali, RPM e Deb. In questo articolo, ci stiamo concentrando su un sistema di imballaggio RPM.

Iniziare

I sistemi di gestione dei pacchetti RPM, Yum e Deb (per le distribuzioni di Debian Linux) hanno molte somiglianze. Tutti possono aggiornare, installare, rimuovere e aggiornare i pacchetti con una funzione di riga di comando.

Al momento di qualsiasi installazione di Linux, viene installata anche una vasta sezione di pacchetti, che è rilevante per l'uso previsto del sistema. Tuttavia, ad un certo punto, un utente deve aggiungere nuovi pacchetti per funzionalità aggiuntive, aggiornare i pacchetti correnti o rimuovere i pacchetti che non sono richiesti nei sistemi basati su Red Hat.

Scopriamo come i responsabili dei pacchetti per le distribuzioni di Red Hat Linux eseguono le attività sopra, comprese le sfide della ricerca dei dettagli del pacchetto o i comandi che contengono i pacchetti.

RPM

RPM Package Manager offre il comando principale denominato RPM che fornisce diverse opzioni per consentire all'utente di trovare tutte le informazioni relative al pacchetto. Le opzioni RPM Le offerte sono raggruppate in tre categorie principali:

  • Installare, aggiornare e rimuovere i pacchetti
  • Per richiedere informazioni relative al pacchetto e verificare
  • Per eseguire funzioni varie

In questo articolo, discuteremo delle prime due opzioni di comando RPM. Anche se può eseguire le attività relative alla gestione dei pacchetti di base, essendo il primo strumento a gestire l'imballaggio RPM, RPM ha alcune limitazioni principali:

L'installazione del pacchetto con RPM non riesce se la dipendenza del pacchetto non è disponibile. Richiede inoltre all'utente di cercare quale pacchetto contiene il componente, che a sua volta ha alcune dipendenze. Inoltre, i comandi RPM richiedono all'utente di individuare la posizione del file RPM.

Yum

Una soluzione conveniente ai problemi di cui sopra è Yum che automatizza l'aggiornamento del pacchetto e la gestione del sistema RPM. Fornisce inoltre la gestione delle dipendenze considerando i pacchetti RPM, non come singolo software ma come parte di un sistema di repository.

Packaging RPM

Il pacchetto RPM è la combinazione di file di configurazione, comandi, documenti per fornire una funzione software. Contiene inoltre metadati che contiene contenuti del pacchetto, da dove proveniva o installati, versione e dettagli di dipendenza con altre informazioni.

Prima di passare ulteriormente nei file del pacchetto RPM, il nome del pacchetto stesso condivide molti dettagli sul software. Per trovare i dettagli di un pacchetto già installato all'interno del sistema, utilizzare il RPM comando con il -Qi Opzione di informazioni sulla query:

[fedora@fedora] $ sudo rpm -qi nmap | meno
Nome: NMAP
Epoca: 3
Versione: 7.80
Rilascio: 11.FC34
Architettura: x86_64
Data di installazione: mar 29 giugno 2021 12:45:34 PM EDT
Gruppo: non specificato
Dimensioni: 24743073
..
RPM di origine: NMAP-7.80-11.FC34.src.RPM
Data di build: THU 11 mar 2021 12:34:34 EST
Build host: buildvm-x86-27.iad2.Fedoraproject.org
Packager: progetto Fedora
..

L'output del comando sopra condivide i dettagli da dove è stato scaricato il programma, direttamente dal repository Yum o da qualsiasi mezzo di installazione. Allo stesso modo, condivide anche i dettagli sulla falsariga di quando è stato installato il programma, che lo ha costruito, le sue dimensioni e quando è stato installato.

Il software per le distribuzioni Linux proviene da progetti open source noti come provider di software upstream. Rendono il software disponibile con condizioni di licenza. Le distribuzioni creano il codice sorgente in binari e li consolidano con altri componenti pertinenti in un pacchetto.

Il pacchetto RPM consolidato è firmato per verificare la sua integrità e aggiunto al repository in corrispondenza alla distribuzione e all'architettura. Tutti i pacchetti RPM provengono dai repository di Yum disponibili all'interno di una directory sul WebServer, una directory di macchine locali o un medio come CD o DVD o un server FTP.

Posizione del pacchetto

La posizione dei file del repository è disponibile nel sistema dell'utente all'interno /etc/yum.repository.D/ Directory, è la posizione predefinita per archiviare le informazioni sul repository. Tuttavia, gli utenti possono anche trovare o specificare queste posizioni all'interno del file di configurazione di Yum principale /etc/yum.conf.

[fedora@fedora] $ cat /etc /yum.Repo.d/fedora.Repo | meno

Un file di repository contiene più copie di pacchetti di distribuzione disponibili da diverse posizioni, note anche come specchi. Quindi, informa Yum sulla posizione dello specchio più vicino per il download più veloce. Il file repository ha tre sezioni, contenenti informazioni sui pacchetti normali, debug e infine sornti.

Proprio come Debian Packaging, RPM e Yum ottengono dettagli sui pacchetti installati dal database locale. I gestori dei pacchetti recuperano i metadati (da /var/cache/yum Directory) Informazioni sui pacchetti all'interno del database locale da repository abilitati.

Scarica RPMS dal repository di Yum

Per esaminare il contenuto di RPMS o installarli in un ambiente non rete, un utente potrebbe essere necessario scaricare il pacchetto. Può essere reso possibile con l'aiuto del comando yumdownloader. Utilizzare il comando YumDownloader, con il nome del pacchetto per scaricarlo nella directory corrente. Ad esempio, scarica il redattore di testo VIM come segue:

[fedora@fedora] $ yumdownloader vim

Oppure, usa l'opzione -Resolve per scaricare le dipendenze richieste per il pacchetto.

[Fedora@Fedora] $ Yumdownloader -Resolve Vim
..
(4/6): Vim-Minimal-8.2.3046-1.FC34.x86_64.RPM 208 KB/S | 698 kb 00:03
(5/6): Vim-Common-8.2.3046-1.FC34.x86_64.RPM 727 KB/S | 6.6 MB 00:09
..

Installazione RPMS

Anche se il RPM Il comando può eseguire l'installazione e gli aggiornamenti di base, gli utenti lo utilizzano solo quando i file del programma sono già nella directory corrente e sono pronti per l'installazione. Poiché VIM è già disponibile nella directory corrente, installalo tramite RPM comando con un -io Opzione con il nome dell'intero pacchetto, come segue:

[Fedora@Fedora] $ Yumdownloader--Resolve NMAP-7.80-11.FC34.x86_64.RPM
[fedora@fedora] $ sudo rpm -i nmap -7.80-11.FC34.x86_64.RPM

Usa il -U Opzione per aggiornare il pacchetto con a -HV Opzione per stampare i segni hash e l'uscita verbosa dettagliata. Si noti che l'opzione -u installa il pacchetto ZSH anche quando è già installata.

[fedora@fedora] $ sudo rpm -uhv nmap -7.80-11.FC34.x86_64.RPM
Verifica… ##################################### [100%]
Preparazione ... #################################### [100%]
..

IL RPM Il comando offre un altro tipo di installazione con il -F (rinfrescere) Opzioni che installano un pacchetto solo se esiste una versione precedente di quel pacchetto. È utile in uno scenario quando l'utente desidera aggiornare tutti i RPM installati in una directory corrente.

[fedora@fedora] $ rpm -fhv *.RPM

Gli utenti possono aggiungere più opzioni a una qualsiasi delle opzioni di installazione, come -sostituzione l'opzione abilita la reinstallazione di un pacchetto se un componente viene eliminato erroneamente. Allo stesso modo, -Oldpackage l'opzione consente l'installazione di una versione precedente del pacchetto.

[fedora@fedora] $ sudo rpm -uhv --Replacepkgs Emacs-Common-24.4-3.FC21.x86_64.RPM
[fedora@fedora] $ sudo rpm -uhv --oldpackage ZSH -4.3.10-7.EL6.x86_64.RPM

Rimozione RPM

Per rimuovere i pacchetti RPM, utilizzare il -e Opzione del comando RPM con solo un nome di base del pacchetto. L'output al seguente comando visualizza che, a differenza della rimozione del pacchetto nel sistema di imballaggio Debian, non mostra alcuna dipendenza rimossa nel processo.

[fedora@fedora] $ sudo rpm -e nmap

Si noti che, a differenza dell'installazione del pacchetto, non richiede la rimozione del pacchetto. Ma se il pacchetto è una dipendenza per un altro programma, l'utente riceve un messaggio di errore poiché il comando RPM non riesce a rimuoverlo.

Interrogare le informazioni di giri / min

In questa sezione, discuteremo di vari modi per interrogare le informazioni tramite il RPM comando. Nella sezione dell'imballaggio RPM, impariamo a visualizzare informazioni su un pacchetto già installato tramite -Qi informazione. Allo stesso modo, il comando RPM consente anche la visualizzazione di file, file di configurazione e altra documentazione con l'aiuto di -Ql, -Qc, E -QD Opzioni, come segue:

[fedora@fedora] $ rpm -ql nmap
/usr/bin/nmap
/usr/bin/nping
/usr/lib/.ID build
/usr/lib/.build-id/4e
..
[fedora@fedora] $ rpm -qc nmap
[fedora@fedora] $ rpm -qd nmap
/usr/share/doc/nmap/readme
/usr/share/doc/nmap/nmap.utilizzo.TXT
/usr/share/man/de/man1/nmap.1.Gz
/usr/share/man/es/man1/nmap.1.Gz
..

I pacchetti RPM includono una pletora di informazioni che possono essere recuperate con varie bandiere. Ad esempio, un utente può utilizzare l'opzione -Require per trovare programmi o file prerequisiti per installare un programma EMAC -Common.

[Fedora@Fedora] $ rpm -q --Requires Emacs -Common
Allo stesso modo, interrogare le informazioni sugli script eseguiti prima e dopo l'installazione o la rimozione di giri / min con l'aiuto del --Script opzione.
[cc lang = "text" width = "100%" height = "100%" sfuggito = "vero" tema = "blackboard" nowRap = "0"]
[fedora@fedora] $ rpm -q - -scrimts httpd

Un'altra caratteristica importante che RPM offerte è un -queryformat Opzione che ci consente di interrogare informazioni come tag e output in qualsiasi formato che l'utente preferisce. Esegui il seguente comando per visualizzare tutti i tag disponibili:

[fedora@fedora] $ rpm --querytags | meno
ARCO
Archiviazione
Basenames
Bugurl
Buildarchi
Buildhost
Buildtime
..

Ad esempio, per visualizzare il nome, la dimensione e il numero di rilascio del tag binutili, Usa il seguente comando:

[fedora@fedora] $ rpm -q binutils --queryformat "Il pacchetto è %nome, \ e la sua dimensione è %size \ n".

Il pacchetto è binutili, le sue dimensioni sono 31814958 e il rilascio è 41.FC34

Infine, aggiungi il -P Flag all'opzione query per aiutare a indagare sugli RPM condivisi da qualcuno prima dell'installazione.

[fedora@fedora] $ yumdownloader emac-mone
[fedora@fedora] $ rpm -qip emacs-common-27.2-3.FC34.x86_64.RPM
..

Questo pacchetto contiene tutti i file comuni necessari per EMACS, EMACS-LUCID o EMACS-NOX.

Verifica RPM

Il database RPM contiene impronte digitali per ciascun file del pacchetto che consente all'utente di verificarne l'integrità. Il comando RPM offre un -V Funzione per verificare eventuali modifiche apportate ai componenti del pacchetto installati. Tuttavia, è importante notare che le modifiche si svolgono nel file di configurazione dopo l'installazione, ma le modifiche ai binari sono un problema.

Installa il pacchetto Emac-Common e apporta modifiche ai suoi file. Ma ricorda di rimuovere e reinstallare il pacchetto dopo la sperimentazione.

[fedora@fedora] $ rpm -i zsh -5.8-5.FC34.x86_64.RPM
[fedora@fedora] $ sudo -i
[root@fedora ~]# echo fedora> /bin /zsh
[root@fedora ~]# rm /etc /zshrc
RM: rimuovere il file normale '/etc/zshrc'? y
[fedora@fedora] $ rpm -v vim
mancante c /etc /zshrc
S.5 ... T. /usr/bin/zsh

L'output di cui sopra visualizza le modifiche apportate nel file / etc / mentre il file / etc / viene rimosso. Le lettere o i numeri nell'output sopra rappresentano eventuali modifiche apportate ai file del pacchetto. Queste lettere sostituiscono i punti dopo la manipolazione dei file, alcuni indicatori sono i seguenti:

  • S: la dimensione del file differisce
  • D: Dispositivo Maggiore/Minore Numero Mismatch
  • M: la modalità file differisce
  • P: le capacità differiscono
  • U: la proprietà dell'utente differisce
  • 5: la somma MD5 differisce
  • T: tempo di modifica

Puoi trovare maggiori dettagli sugli indicatori di verifica dalla documentazione ufficiale.

L'output di cui sopra aiuta a interpretare le modifiche alla dimensione del file, le modifiche in md5sum rispetto all'impronta digitale del file e il tempo di modifica. IL RPM Il comando offre un -sostituzione Opzione per ripristinare lo stato del pacchetto. Verificare di nuovo con l'opzione Verifica: Nessun output non visualizza modifiche.

[fedora@fedora] $ rpm -i --ReplacepKGS ZSH -5.0.2-7.EL7.x86_64.RPM
[fedora@fedora] $ rpm -v vim

La pratica ideale è mantenere un backup del database /var/lib/rpm su un mezzo di sola lettura. Aiuta a verificare l'integrità del pacchetto con la fideiussione che non sia controllato rispetto a un database temperato/rotto.

Conclusione

L'articolo descrive in dettaglio la storia e l'evoluzione del sistema di imballaggio per Red Hat Linux Distribution. Fornisce inoltre dettagli sull'imballaggio RPM e sulla sua posizione all'interno del sistema. Infine, l'articolo fornisce dettagli approfonditi sulle cinque operazioni di base di RPM.