Questo post tratterà le domande pratiche più frequentemente riportate su Enterprise Linux Common Package Manager (RPM). Anche se non viene usato spesso, rpm è un must da sapere quando devi affrontare un colloquio su Linux.
Cos'è l'RPM?
RPM sta per Red Hat Package Manager che fornisce l'installazione, l'aggiornamento e la rimozione di pacchetti su distribuzioni Linux. È uno strumento software gratuito. Originariamente sviluppato da Red Hat per Red Hat Linux, RPM è ora utilizzato da molte distribuzioni Linux. È stato anche portato su altri sistemi operativi, come Suse Linux e AIX di IBM a partire dalla versione 5.
Quali principali tipi di RPM?
Esistono due tipi principali di pacchetti RPM:binari (o applicazioni) e sorgenti. È stato compilato un RPM binario per una particolare architettura. RPM del codice sorgente che forniscono il codice sorgente per altri pacchetti. Il nome del pacchetto termina con il suffisso src.rpm tale come:
Binary Package: xpdf-3.00-11.12.i386.rpm Source code package: xpdf-3.00-11.12.src.rpm
Come verificare che il pacchetto sia installato?
Usa “rpm –q ” comando per verificare rapidamente l'installazione di un pacchetto. Per verificare, è necessario utilizzare il nome del pacchetto installato, non il nome del file RPM. Puoi anche usare un nome di pacchetto parziale. In alternativa, puoi usare il comando “rpm -qa |grep key-word ” che ti mostrerà molti più pacchetti.
Come ottenere informazioni più dettagliate durante l'installazione di un pacchetto rpm?
La sintassi del comando è
# rpm -Uhv package
Questo stamperà i segni # con l'opzione -h e l'opzione -v stamperà informazioni dettagliate durante l'esecuzione del comando. Puoi installare un pacchetto più di una volta. Il comando rpm non si lamenterà. L'operazione di aggiornamento, tuttavia, rimuoverà tutte le altre versioni di un pacchetto. Questo è un motivo in più per utilizzare l'opzione di aggiornamento –U.
Come aggiornare il kernel?
Dal punto di vista della sicurezza, un nuovo kernel dovrebbe essere installato con "-i ” contrassegno anziché aggiornato con “-U " bandiera. In modo che la versione precedente sia ancora installata e possa essere utilizzata nel caso in cui il nuovo kernel non funzioni. Es.:
# rpm -ivh kernel-2.6.9-78.0.0.0.1.EL4.I686rpm
Come mostrare la percentuale di completamento durante l'esecuzione del comando rpm?
La sintassi di base è:
# rpm -U --percent package
La –percentuale l'opzione stampa numeri decimali che mostrano la percentuale completata durante l'esecuzione del comando rpm. Questa opzione è molto utile se si racchiude il comando rpm in qualche altro comando, come un'interfaccia utente grafica creata da uno script Perl, Python o Tcl/Tk.
Qual è il processo dettagliato per l'installazione di un pacchetto RPM?
È possibile utilizzare il comando rpm –U o il comando rpm –i per installare un pacchetto. Quando il comando rpm installa un pacchetto, esegue una serie di passaggi:
- Controllo del pacchetto e dei file che vuole installare
- Esecuzione delle attività di preinstallazione
- Decomprimere i file e posizionarli nelle posizioni appropriate
- Esecuzione di attività di post-elaborazione
- Aggiornamento del database RPM
Come testare un comando rpm?
Il –test l'opzione della riga di comando indica al comando rpm di testare il processo di installazione o aggiornamento ma non di installare il file. Ad esempio:
# rpm -U --test eruby-devel-0.9.8-2.i386.rpm
Come installare o aggiornare più pacchetti contemporaneamente?
Basta elencare ogni nome di file sulla riga di comando rpm. La sintassi di base segue:
# rpm -U package1.rpm package2.rpm .. package100.rpm
Come installare il pacchetto rpm in directory diverse?
Il -prefisso e –trasferisci le opzioni dovrebbero fare in modo che il comando rpm riposiziona un pacchetto in una nuova posizione. Tuttavia, non tutti i pacchetti consentono il trasferimento. Il formato di base del comando con l'opzione –prefix è:
# rpm -U --prefix /new/directory package.rpm
Con l'opzione –relocate, il formato del comando è:
# rpm -i --relocate /old/directory=/new/directory package.rpm
Puoi anche usare il –root opzione per specificare una directory diversa che il comando rpm assume sia la directory root o /, del sistema. Ciò fa sì che il comando rpm installi i file nella nuova radice, anziché nelle posizioni di sistema in /. Questa opzione è molto utile per testare l'installazione di un sistema completo in una directory di test. Il comando dovrebbe utilizzare il seguente formato:
# rpm -U --root /tmp --dbpath /var/lib/rpm package.rpm
Come saltare lo script quando si installa/rimuove un pacchetto rpm?
Come parte dell'installazione del pacchetto, oltre alla rimozione, il pacchetto RPM potrebbe contenere script che il comando rpm dovrebbe eseguire. Questi includono script di pre e post installazione, nonché script di pre e post disinstallazione. Questi script possono eseguire opzioni come la configurazione automatica dell'applicazione in base all'ambiente di destinazione. La tabella seguente riassume queste opzioni.
Opzione | Utilizzo |
---|---|
–nopre | Salta gli script di preinstallazione. |
–nopost | Salta gli script post-installazione. |
–nopreun | Salta gli script di pre-disinstallazione. |
–nopostun | Salta gli script post-disinstallazione. |
–noscript | Salta tutti gli script; come –nopre, –nopost, –nopreun e –nopostun. |
Durante l'installazione, puoi dire al comando rpm di non eseguire tutti i trigger o di non eseguire determinati trigger. I –notrigger opzione dice al comando rpm di saltare tutti i trigger.
Opzione | Utilizzo |
---|---|
–nottriggerin | Salta i trigger di installazione. |
–notriggerun | Salta i trigger di disinstallazione. |
–notriggerpostun | Salta i trigger successivi alla disinstallazione. |
–notrigger | Salta tutti i trigger; come –notriggerin, — notriggerun e — notriggerpostun. |
Cosa sono le opzioni Ignora con RPM?
Il comando rpm supporta diverse opzioni ignore che dicono al comando di ignorare alcuni aspetti di un pacchetto di cui normalmente si lamenterebbe.
- Il –ignorearch opzione indica al comando rpm di ignorare l'architettura del pacchetto e di installare il pacchetto, anche se l'architettura del pacchetto e l'architettura del sistema non corrispondono. Questa è un'opzione molto pericolosa.
- Gli –ignoreos l'opzione della riga di comando indica al comando rpm di ignorare il sistema operativo. Anche in questo caso, questa non è probabilmente una buona idea nella maggior parte delle situazioni.
- Il –ignora opzione dice al comando rpm di ignorare o saltare un controllo del disco rigido per assicurarsi che abbia spazio sufficiente per installare il pacchetto. Avviso :non utilizzare l'opzione –ignoresize se hai un disco rigido quasi pieno, specialmente per una partizione root o /.
- Il –nodigest opzione dice al comando rpm di saltare il test del digest, il valore speciale che aiuta a verificare la correttezza del pacchetto.
- La –nessuna firma opzione dice al comando rpm di saltare il test del digest, la chiave crittografata, che aiuta anche a verificare la correttezza del pacchetto.
Come installare/aggiornare il pacchetto rpm tramite ftp?
La sintassi comune come segue:
# rpm -i ftp://username:[email protected]/pub/rpms/sample_rpm.src.rpm
Come installare/aggiornare il pacchetto rpm tramite HTTP?
Simile all'accesso a un file tramite FTP, è necessario passare al comando rpm un URL che identifichi il file. Ad esempio:
# rpm –i http://ftp.redhat.com/pub/contrib/noarch/SRPMS/Squeak-sources-3-1.src.rpm
Come rimuovere più pacchetti contemporaneamente?
La sintassi di base segue:
# rpm -e package1.rpm package2.rpm .. package100.rpm
Come elencare i file di documentazione per un pacchetto?
La sintassi di base è:
# rpm –qd package_name
Come elencare i file in un pacchetto?
La sintassi di base è:
# rpm –ql package_name
Come elencare gli script in un pacchetto?
La sintassi di base è:
# rpm -q --scripts package_name
Come elencare cosa è cambiato per un pacchetto?
Il formato base del comando è:
# rpm -q --changelog package_name
Come elencare gli ultimi pacchetti installati?
La sintassi di base è:
# rpm -qa --last
Il comando seguente mostrerà più o meno di dieci righe.
# rpm -qa --last | head
Come creare query personalizzate?
La sintassi di base del formato della query è %{tag_name}. Ad esempio:
# rpm -q --qf "%{N}.%{V}--%{R}.%{ARCH}\n" kernel-smp
Il comando sopra mostrerà le informazioni complete del pacchetto kernel-smp come personalizzato. Es.:
# rpm -q --qf "%{N}.%{V}--%{R}.%{ARCH}\n" kernel-smp kernel-smp.2.6.9--67.0.0.0.1.EL.i686
Quali sono i tag delle informazioni sui pacchetti supportati da RPM?
Tag di query sulle informazioni sul pacchetto:
Tag | Mantiene |
---|---|
NOME | Nome pacchetto |
VERSIONE | Numero di versione |
RILASCIO | Numero di rilascio |
RIEPILOGO | Riepilogo di una riga del contenuto del pacchetto |
DESCRIZIONE | Testo descrittivo sul pacchetto |
BUILDTIME | Il pacchetto Time è stato creato |
BUILDHOST | Il pacchetto host è stato creato su |
TAGLIA | Dimensione di tutti i file normali nel payload |
LICENZA | Il pacchetto di licenza è stato rilasciato con |
GRUPPO | Nome descrittivo del gruppo o della categoria per il pacchetto |
OS | Il pacchetto del sistema operativo è stato creato per |
ARCH | Architettura, come i386 |
SOURCERPM | L'RPM sorgente associato |
TEMPO DI CAMBIAMENTO | Matrice dei tempi del registro delle modifiche |
CAMBIOLOGNAME | Matrice di nomi del registro delle modifiche |
CAMBIA TESTOLOGO | Matrice di voci di testo del registro delle modifiche |
PREIN | Script di preinstallazione |
POSTIN | Script post-installazione |
PREUN | Script di pre-disinstallazione |
POSTUN | Post script di disinstallazione |
PIATTAFORMA | Piattaforma |
Come verificare i pacchetti RPM installati?
La sintassi di base è:
# rpm -V verify_options package_name
Per verificare l'intero sistema, utilizza -a opzione.
Come determinare quali funzionalità richiede un pacchetto?
La sintassi di base è:
# rpm -q query_options --requires packages
Come verificare cosa è in conflitto con un determinato pacchetto?
La sintassi di base è:
# rpm –q query_options --conflicts packages