Risoluzione dei problemi di pacman

From Manjaro Linux
Jump to: navigation, search

⇐ Torna alla Pagina Principale

Panoramica

Questa guida affronta la risoluzione di vari problemi che è possibile incontrare durante l'installazione di pacchetti software dai repository di Manjaro tramite il gestore di pacchetti pacman.

Errore "file in conflitto"

Questo messaggio di errore compare quando il gestore di pacchetti si accorge che per installare un determinato pacchetto sarebbe necessario sovrascrivere un file (o numerosi file) già presente nel sistema. Il nome del file (o dei diversi file) in questione viene stampato insieme al messaggio di errore in un formato simile al seguente

nomepacchetto: /percorso/completo/file è già presente nel filesystem

Ci sono due possibili soluzioni:

  • se vengono segnalati solo pochi file, è possibile rimuoverli manualmente tramite il comando
sudo rm /percorso/completo/file
  • se i file sono molto numerosi, è possibile automatizzare il processo dando al gestore di pacchetti il permesso di sovrascrivere i file in conflitto, questa opzione va utilizzata il meno possibile perché può avere effetti collaterali anche gravi, per utilizzarla bisogna lanciare il seguente comando di installazione fornendo il nome del pacchetto che causa il problema
sudo pacman -S nomepacchetto --overwrite /percorso/completo/*

Errore "impossibile bloccare il database: File già esistente"

Durante i processi di scaricamento ed installazione del software, verrà creato da pacman uno speciale file di blocco del database al fine di assicurare che l'attuale processo di installazione sia l'unico in esecuzione. Diversamente, il tentativo di installare più file da più risorse contemporaneamente potrebbe corrompere gli stessi, creare conflitti – o ancor peggio – danneggiare il sistema. Una volta completata l'installazione, il file di blocco verrà automaticamente cancellato. Questo errore potrebbe verificarsi perciò per due ragioni:

  • Un'altra installazione è in corso e non è ancora terminata;
  • Un tentativo precedente di installazione non è stato eseguito o terminato in modo corretto (ad es. un interruzione anticipata di pacman);
  • Se viene utilizzata un'interfaccia grafica per pacman, come Octopi o Pamac, questa potrebbe star eseguendo un aggiornamento del database automatico, o potrebbe non aver completato lo stesso correttamente al precedente arresto del sistema.

Controllare che un altro processo di installazione non sia in esecuzione al momento dell'errore. Appurato che non sia stata questa la causa, è possibile cancellare manualmente il file di blocco del database attraverso il seguente comando nel terminale

sudo rm /var/lib/pacman/db.lck

Rimosso il blocco è possibile procedere nuovamente con l'installazione desiderata.

Errore "il pacchetto non è valido oppure è corrotto (firma PGP)"

I pacchetti software degli archivi ufficiali di Manjaro contengono un codice, con precisione una firma digitale univoca, apposta dai rispettivi pacchettizzatori (packager, coloro che compilano e creano i pacchetti presenti nei repository). Questa firma garantisce l'autenticità del pacchetto, cioè il fatto che il pacchetto provenga da un preciso packager, e la sua integrità, cioé che non sia stato alterato per errore di trasmissione o a causa di software malevolo.

Nel processo di installazione, dopo che ogni pacchetto è stato scaricato, il sistema provvede a controllare le rispettive chiavi firmate per assicurare l'autenticità prima di procedere. Se per qualche ragione la chiave non è identificata correttamente verrà interrotto il processo di installazione. Di solito il problema si presenta per le seguenti ragioni:

  • una o più chiavi firmate contenute nel database del sistema sono state revocate, modificate, corrotte o non aggiornate;
  • uno o più pacchetti software non sono stati firmati correttamente prima di essere caricati negli archivi.

Se un pacchetto non è stato firmato correttamente prima di essere caricato nel repository, sarà compito delle sviluppatore rimediare. Tuttavia è molto probabile che questo problema sia dovuto alla verifica delle chiavi di firma sul proprio sistema, problemi di questo tipo sono più probabili su sistemi non aggiornati regolarmente. Esso si risolve in tre semplici passi ma è necessaria una connessione attiva e l'utilizzo del terminale.

1. Inizializzare il portachiavi di pacman inserendo il seguente comando:

sudo pacman-key --init 

2. Caricare le chiavi firmate:

sudo pacman-key --populate archlinux manjaro 

3. Rigenerare e aggiornare le chiavi firmate:

sudo pacman-key --refresh-keys 

A questo punto il problema potrebbe essersi risolto, nel caso in cui non lo fosse reinstallare i due keyring:

sudo pacman -S archlinux-keyring manjaro-keyring

Dopo averli reinstallati si possono ripetere i passi precedenti (1-3) ed il problema dovrebbe essere risolto, quindi si può lanciare un aggiornamento di sistema:

sudo pacman -Syu

Errore "Configuration file...not recognized"

Il gestore dei pacchetti di Manjaro utilizza un file chiamato mirrorlist che specifica gli indirizzi internet dei server di Manjaro esistenti al fine di scaricare da essi gli aggiornamenti e le applicazioni software. Questo errore si presenta quando uno o più indirizzi dei server contenuti nella lista dei mirrors risultano mal definiti e dunque il gestore di pacchetti non è in grado di connettersi ad essi. Un indizio potenziale può essere quando si incorre nel problema subito dopo aver:

  • installato Manjaro e modificato il file con la lista dei mirror durante l'installazione;
  • modificato la lista dei mirror in un qualunque momento successivo.

Per ricostruire completamente la lista dei mirror è possibile utilizzare il seguente comando

sudo pacman-mirrors --country all && sudo pacman -Syyu

Errore "GPGME error: No data"

La causa più probabile è il rilevamento da parte di pacman di pacchetti scaricati che risultano errati o corrotti. Per verificare la validità del software scaricato si utilizza la firma e il checksum dei pacchetti; se il controllo fallisce, l'installazione in corso verrà terminata per proteggere il sistema fintanto che il problema non sarà risolto.

Opzione 1: Risoluzione di Base

Per risolvere il problema, seguire prima la risoluzione di base; se non funziona, allora è disponibile una procedura più completa.

1. Sincronizzare nuovamente con i server di Manjaro per assicurare che tutto risulti aggiornato inserendo il seguente comando:

sudo pacman -Syy

2. Ripulire i pacchetti software scaricati durante l'installazione fallita con il comando:

sudo pacman -Sc

3. Riprovare l'aggiornamento interrotto.

Attenzione: Si ricorda che il comando nel punto 2 cancellerà tutte le vecchie versioni dei pacchetti installati.

Opzione 2: Risoluzione Completa

Se la procedura di base non ha risolto il problema, sono disponibili ulteriori passi:

1. Sincronizzare nuovamente con i server di Manjaro per assicurare che tutto risulti aggiornato inserendo il seguente comando:

sudo pacman -Syy

2. Rinnovare e aggiornare le chiavi firmate inserendo il comando:

sudo pacman-key --refresh-keys

3. Scaricare di nuovo le firme delle chiavi inserendo il comando:

sudo pacman-key --populate archlinux manjaro

4. Ripulire i pacchetti software scaricati durante l'installazione fallita con il comando:

sudo pacman -Sc

5. Riprovare l'aggiornamento interrotto.

Se l'errore persiste si raccomanda di aggiornare la lista dei mirror tramite il seguente comando

sudo pacman-mirrors --country all && sudo pacman -Syyu

Avviso "la versione installata (...) è più recente di quella presente in (...)"

Questo avviso nella sua forma completa appare

Avviso: nome_pacchetto: la versione installata (local.ver) è più recente di quella presente in nome_repository (repo.ver)

dove sono indicate le seguenti informazioni:

  • nome_pacchetto è il nome del pacchetto soggetto di questo avviso;
  • local.ver è la versione locale del pacchetto;
  • nome_repository è il repository in cui è stato trovato il pacchetto soggetto del messaggio;
  • repo.ver è la versione del pacchetto presente nel repository indicato.

La situazione che genera questo avviso viene a crearsi solitamente per due motivi. Il primo motivo possibile è un downgrade del pacchetto nei repository a causa di problemi scoperti nella nuova versione, se il downgrade viene eseguito solo dopo che la nuova versione è stata pubblicata ed installata dagli utenti allora tutti coloro che nel frattempo hanno aggiornato il sistema noteranno questo avviso, in questo caso gli utenti che non sperimentano alcun problema nell'utilizzo del sistema possono ignorare il messaggio. Il secondo motivo possibile è un cambio di modalità nel versionamento del pacchetto da parte del manutentore, in questo caso l'utente deve agire manualmente per risolvere la situazione altrimenti il pacchetto potrebbe non aggiornarsi per un tempo indefinito.

Per risolvere la situazione e quindi eliminare questo avviso è sufficiente reinstallare il pacchetto coinvolto tramite

sudo pacman -S nome_pacchetto

oppure, nel caso in cui vengano segnalati diversi pacchetti e la reinstallazione risulti scomoda (per esempio quando si cambia il ramo di riferimento), è possibile eseguire un aggiornamento di sistema attivando il downgrade automatico tramite

sudo pacman -Syuu

Voci correlate

Collegamenti esterni