Comando rpm: interrogare pacchetti installati e file RPM
rpm, RPM Package Manager, permette di interrogare archivi RPM e database dei pacchetti installati. Usa -q per il database locale, aggiungi -p per un file RPM e distingui questi controlli dalla verifica dei file con -V; per installare pacchetti e risolvere le dipendenze dai repository usa normalmente il gestore dnf.
Una differenza rispetto al database non dimostra da sola un'intrusione: potrebbe riguardare una configurazione modificata intenzionalmente. Allo stesso modo, leggere nome e versione di un RPM non ne dimostra l'affidabilità. Sono domande distinte: che cosa contiene il pacchetto, che cosa risulta installato e da chi proviene il file?
Sintassi e scelta del bersaglio
rpm [operation] [option] package or file
Questa riga è uno schema: operation, option e package or file sono segnaposto. Verifica rpm --version, rpm --help e man rpm sul sistema interessato. Il manuale RPM 6.0.x spiega le opzioni citate, ma la tua distribuzione può fornire un'altra versione.
Un nome come bash seleziona un pacchetto nel database locale. Un percorso come ./example.rpm indica invece un archivio da esaminare con -p. Per le normali interrogazioni non serve sudo; leggere un database non equivale a modificare i pacchetti installati. Usa questi esempi su sistemi che adottano RPM, non come sostituti dei comandi Debian.
Esempi: pacchetto installato e archivio locale
Controllare la presenza di bash
rpm -q bash
Se il pacchetto è registrato, la risposta normale ne identifica nome, versione e release, con dettagli dipendenti dal formato in uso. Se non è installato, RPM segnala che non lo trova e restituisce uno stato diverso da zero. La risposta riguarda il database, non il funzionamento del programma o la sua disponibilità nei repository.
Elencare i percorsi del pacchetto
rpm -ql bash
-q seleziona la modalità di interrogazione e -l richiede l'elenco dei file. Puoi usarlo per individuare un eseguibile o una pagina di manuale del pacchetto. L'elenco non è un controllo corrente dell'integrità dei file e non descrive ogni dato creato successivamente dall'applicazione. Per un percorso installato, rpm -qf /percorso/del/file cerca invece il pacchetto che lo possiede: sostituisci il percorso con quello effettivo.
Leggere un RPM prima di installarlo
rpm -qpi ./example.rpm
Sostituisci example.rpm con l'archivio ricevuto, nella directory corrente. La combinazione significa query, package file e informazioni: mostra i metadati senza installare il pacchetto. Controlla versione, architettura e descrizione e confrontale con la distribuzione di destinazione. Un nome di file plausibile non basta a identificarne il contenuto.
In questa modalità -i richiede le informazioni; rpm -i ./example.rpm, senza -q, è invece un'operazione di installazione. Non eliminare -q pensando che sia facoltativo. Per leggere i requisiti dell'archivio puoi usare rpm -qpR ./example.rpm: elencarli non significa che siano già soddisfatti sul sistema.
Un formato esplicito per interrogare il database
rpm -q --qf '%{NAME}\n' bash
Se bash è installato, il risultato atteso per questa interrogazione è:
bash
--qf abbrevia queryformat. RPM sostituisce %{NAME} con il nome del pacchetto e interpreta \n come fine riga. Gli apici singoli fanno passare il formato a RPM come un solo argomento: conserva il carattere backslash, senza trasformarlo nella lettera n o in un a capo scritto dentro il comando.
Specificare i campi è utile quando uno script deve leggere un valore preciso invece dell'output predefinito. Se servono anche versione, release o architettura, scegli i relativi tag supportati dalla tua versione: il solo nome non identifica ogni variante installabile. Controlla sempre lo stato di uscita, ad esempio con echo $? immediatamente dopo l'interrogazione, prima che un altro comando lo sostituisca.
Un risultato assente non va interpretato automaticamente come dato vuoto valido. Distingui pacchetto non installato, nome errato, archivio non leggibile ed errori di accesso al database, conservando anche il messaggio diagnostico.
Opzioni principali: il contesto conta
| Opzione | Significato |
|---|---|
-q |
Attiva l'interrogazione di pacchetti o archivi. |
-p |
In modalità query seleziona un file RPM invece di un pacchetto installato. |
-l / -i |
Con -q mostra l'elenco dei file oppure le informazioni del pacchetto. |
-f percorso |
Con -q cerca il pacchetto proprietario di un file installato. |
-V |
Confronta i file installati con i metadati conservati nel database. |
Queste combinazioni rispondono a esigenze diverse. Per verificare il contenuto sul disco non basta ripetere -ql; per sapere da quale pacchetto deriva un file non occorre installare nuovamente un RPM. Prima di aggiungere opzioni, identifica quale delle due fonti stai consultando: database locale o archivio ricevuto.
Verifica dei file, firme e precauzioni
rpm -V bash confronta gli attributi dei file installati con quelli registrati per bash. Il controllo può anche eseguire uno script di verifica contenuto nel pacchetto; se vuoi escluderlo, il manuale documenta rpm -V --noscripts bash. Non trattare quindi ogni modalità di verifica come una semplice lettura priva di script.
Nel formato di verifica, S segnala una differenza di dimensione, M di modalità o tipo, 5 di digest e T di data di modifica. Un punto indica che il controllo corrispondente è riuscito; un punto interrogativo indica che non è stato possibile eseguirlo, per esempio per mancanza di accesso. Leggi anche il percorso e l'eventuale indicazione c di file di configurazione. Esamina il cambiamento prima di decidere se sia previsto, un errore o un possibile problema di sicurezza.
-V confronta con il database locale: non certifica da solo che il database sia attendibile e non sostituisce l'analisi di un incidente. Per un archivio scaricato, rpmkeys --checksig ./example.rpm controlla digest e firme secondo le chiavi e la configurazione disponibili. Verifica la provenienza della chiave e la sua impronta tramite un canale ufficiale affidabile; importare una chiave ricevuta insieme a un file sconosciuto non rende automaticamente affidabile il produttore.
Se manca la chiave corretta o la verifica fallisce, chiarisci la causa prima di installare. Non ignorare dipendenze, firme o conflitti con opzioni di forzatura. Per l'installazione ordinaria lascia a DNF la risoluzione dei repository e leggi il piano; conserva dati e configurazioni prima di modificare il sistema. Reinstallare un pacchetto non ricrea necessariamente lo stato precedente dei dati applicativi.
Domande frequenti
Che differenza c'è fra rpm -q e rpm -qp?
-q interroga normalmente il database dei pacchetti installati. Aggiungendo -p si seleziona un archivio RPM: leggerne i metadati non lo installa e non dimostra che sia già installato.
Una differenza segnalata da -V prova un'intrusione?
No. Può essere una modifica amministrativa prevista, soprattutto nei file di configurazione. Confronta percorso, attributi e modifiche autorizzate; considera anche l'affidabilità del database usato come riferimento.
Documentazione ufficiale
Consulta il manuale ufficiale di rpm per modalità e verifiche, il manuale del formato di interrogazione per tag e caratteri speciali e rpmkeys per firme e chiavi. Confronta le indicazioni con i manuali della versione fornita dalla tua distribuzione.




