APT: Errori (non così) frequenti

Versione del 7 lug 2019 alle 15:55 di S3v (discussione | contributi) (Messaggio durante l'aggiornamento al cambio di release)
Guida da adottare! Bannermv.png


Debian-swirl.png Versioni Compatibili

Tutte le versioni supportate di Debian

Introduzione

Questa pagina ha lo scopo di raccogliere i casi più frequenti di errori legati all'utilizzo degli strumenti APT di Debian, quali apt-get, dpkg, ed altri.

apt-get

Problema con la firma GPG

Con l'introduzione, da Etch in poi, di una nuova forma di autenticazione dei pacchetti, può capitare di trovarsi davanti ad un messaggio del genere:

W: GPG error: http://ftp.debian-unofficial.org sarge Release: \ 
The following signatures couldn't be verified because the public key is not available: \
NO_PUBKEY F82E5CC04B2B2B9E

Questo avviso indica che la chiave gpg usata per firmare l'archivio non è disponibile sul computer in uso.

Per ovviare a questo problema, è sufficiente eseguire i seguenti comandi:

# gpg --recv-keys #numerochiaveindicatonelmessaggio
# gpg --armor --export #numerochiaveindicatonelmessaggio | apt-key add - 
  Aggiornamento:
per risolvere questo problema è sufficiente installare il pacchetto debian-keyring.deb dando il comando:
 # apt-get install debian-keyring


Problema con la Dynamic MMap

APT usa un file di cache, in cui vengono archiviate le informazioni disponibili sui pacchetti, che al momento dell'utilizzo viene mappato in memoria (RAM) in un'area di grandezza fissata, chiamata "Dynamic MMap". Aggiungendo dei repository al /etc/apt/sources.list può succedere che la grandezza fissata di default non sia più sufficiente a contenere le informazioni ottenute, e APT restituisce il seguente errore:

Error: Dynamic MMap ran out of room

Per ovviare all'inconveniente è sufficiente inserire (o modificare) una riga nel file /etc/apt/apt.conf, creandolo se non esiste, in cui viene specificato un limite più alto per la Dynamic MMap: la riga

APT::Cache-Limit 16777216;

imposta il limite a 16 MB, che nei moderni PC è un valore ragionevole.

Per controllare al volo quanta RAM avete disponibile al momento potete usare cat /proc/meminfo. La voce interessante è quella che inizia con Active (non con Free), infatti Linux è solito usare la memoria libera per mantenere una cache, cosa che permette di velocizzare le operazioni più comuni, e la libera al volo in caso di necessità: la memoria attiva è la memoria totale usata, meno quella impiegata come cache ;-)

Vedere anche: Introduzione all'APT System

Aggiornamento al cambio di release

Il seguente messaggio:

Il repository "nome" ha modificato il valore "Suite" da "testing" a "stable"
N: Ciò deve essere accettato prima di poter applicare gli aggiornamenti da questo repository. Per maggiori informazioni consultare la pagina man apt-secure(8).

o anche:

Il repository "nome" ha modificato il valore "Suite" da "buster" a "testing"
N: Ciò deve essere accettato prima di poter applicare gli aggiornamenti da questo repository. Per maggiori informazioni consultare la pagina man apt-secure(8).

o simile potrebbe comparire durante l'aggiornamento se si è verificato un rilascio con conseguente cambio dell'associazione codename/release (ad esempio buster è diventata stable e non è più testing).<br(> Questo messaggio andrà via dopo un:

# apt --allow-releaseinfo-change update

oppure rispondendo "s" e non "N" o [INVIO] se viene posta la domanda di accettare il cambio di informazioni sulla reelase.

dpkg

ldconfig e start-stop-daemon non in PATH

È possibile che, a partire da Buster in poi, appaia il seguente messaggio d'errore durante un aggiornamento:

dpkg: attenzione: "ldconfig" non è stato trovato in PATH o non è un eseguibile
dpkg: attenzione: "start-stop-daemon" non è stato trovato in PATH o non è un eseguibile
dpkg: errore: 2 programmi attesi non sono stati trovati in PATH o non sono eseguibili
Nota: la variabile PATH di root dovrebbe contenere /usr/local/sbin, /usr/sbin e /sbin
E: Sub-process /usr/bin/dpkg returned an error code (2)

Ciò è dovuto al cambiamento del comportamento del comando "su": adesso la variabile d'ambiente PATH non viene più preservata.
La soluzione consiste nell'utilizzare il comando:

$ su -

anziché:

$ su

per ottenere i privilegi di amministrazione.

Si veda anche questo link[1].

Link utili

[1] ldconfig e start-stop-daemon non in PATH (BTS)