[Risolto] Rimozione pacchetto "ic"

Sezione dedicata alle problematiche sull'uso dei tool di installazione e gestione di pacchetti, in una distribuzione Debian-based.

[Risolto] Rimozione pacchetto "ic"

Messaggioda s3v » 17/07/2018, 9:29

Salve a tutti.

Ho un "problema" di cui mi sono accorto soltanto adesso e che non è assolutamente importante se non per il fatto che mi dà fastidio lasciare problemi irrisolti sul PC :)

Tramite una ricerca di tutti i pacchetti installati con status diverso da "ii", ho da poco visto che esiste un pacchetto flaggato da dpkg come "ic":
Codice: Seleziona tutto
$ dpkg -l | grep -v '^ii'
Voluto=U (non noto)/I (installato)/R (rimosso)/P (rimosso totale)/H (in attesa)
| Stato=Non/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(nessuno)/R (reinstallazione richiesta) (Stato,Err: maiuscolo=grave)
||/ Nome                 Versione                       Architettura Descrizione
+++-======================================
ic  linux-image-4.6.0-1-amd64                     4.6.4-1                        amd64        Linux 4.6 for 64-bit PCs

Poi ne ho controllato lo stato:
Codice: Seleziona tutto
$ dpkg-query -s linux-image-4.6.0-1-amd64 | grep Status
Status: install ok config-files

e infine la pagina di manuale:
$ man dpkg
[...]
Package states
[...]

config-files
Only the configuration files of the package exist on the system.
[...]

per cui presumo che il pacchetto risulti installato ma che siano rimasti solo i file di configurazione (magari dopo una rimozione non perfettamente riuscita).
I file rimasti sono questi:
Codice: Seleziona tutto
$ dpkg -L linux-image-4.6.0-1-amd64
/lib
/lib/modules
/lib/modules/4.6.0-1-amd64
/lib/modules/4.6.0-1-amd64/kernel

cioè solo la directory "/lib/modules/4.6.0-1-amd64" che però non esiste:
Codice: Seleziona tutto
$ ls -l /lib/modules/4.6.0-1-amd64
ls: impossibile accedere a '/lib/modules/4.6.0-1-amd64': File o directory non esistente

Il pacchetto non viene rimosso:
Codice: Seleziona tutto
$ apt purge linux-image-4.6.0-1-amd64
$ dpkg -l | grep -v '^ii'
[...]
ic  linux-image-4.6.0-1-amd64                     4.6.4-1                        amd64        Linux 4.6 for 64-bit PCs

Premesso questo, come dico a dpkg che questo pacchetto non è più installato?
Vado a cancellare manualmente i riferimenti nei file letti da dpkg? Installo il pacchetto e lo rimuovo (visto che non esiste più nei repository dovrò prenderlo dagli snapshot)? Lo rimuovo con dpkg (questo non vorrei farlo per evitare che risolva il problema in maniera "non pulita" - se lo risolve)?
A qualcuno è capitato qualcosa di simile?

Grazie
Avatar utente
s3v
Global Moderator
Global Moderator
 
Messaggi: 5584
Iscritto il: 31/12/2008, 11:54

Re: Rimozione pacchetto "ic"

Messaggioda s3v » 17/07/2018, 10:04

Altre info:
Codice: Seleziona tutto
# apt purge linux-image-4.6.0-1-amd64
[...]
Eliminazione dei file di configurazione di linux-image-4.6.0-1-amd64 (4.6.4-1)...
rmdir: rimozione di '/lib/modules/4.6.0-1-amd64' non riuscita: File o directory non esistente
dpkg: errore nell'elaborare il pacchetto linux-image-4.6.0-1-amd64 (--purge):
 installed linux-image-4.6.0-1-amd64 package post-removal script subprocess returned error exit status 1
Si sono verificati degli errori nell'elaborazione:
 linux-image-4.6.0-1-amd64
E: Sub-process /usr/bin/dpkg returned an error code (1)

Ho provato anche a creare la directory manualmente sperando che l'errore consistesse nel fatto che dpkg non riusciva a trovarla:
Codice: Seleziona tutto
# mkdir -p /lib/modules/4.6.0-1-amd64/kernel
# ls -l /lib/modules/
drwxr-xr-x 3 root root 4096 lug 14 20:48 4.14.0-3-amd64
drwxr-xr-x 3 root root 4096 apr 14 19:53 4.15.0-2-amd64
drwxr-xr-x 3 root root 4096 lug 14 20:44 4.16.0-2-amd64
drwxr-xr-x 3 root root 4096 lug 17 10:54 4.6.0-1-amd64

Ma nulla...
Codice: Seleziona tutto
# apt purge linux-image-4.6.0-1-amd64
[...]
Eliminazione dei file di configurazione di linux-image-4.6.0-1-amd64 (4.6.4-1)...
rmdir: rimozione di '/lib/modules/4.6.0-1-amd64' non riuscita: Directory non vuota
dpkg: errore nell'elaborare il pacchetto linux-image-4.6.0-1-amd64 (--purge):
 installed linux-image-4.6.0-1-amd64 package post-removal script subprocess returned error exit status 1
Si sono verificati degli errori nell'elaborazione:
 linux-image-4.6.0-1-amd64
E: Sub-process /usr/bin/dpkg returned an error code (1)

Anzi, compare anche un errore ad ogni operazione tramite apt. Ad esempio:
Codice: Seleziona tutto
# apt purge dpkg
Lettura elenco dei pacchetti... Fatto
Generazione albero delle dipendenze       
Lettura informazioni sullo stato... Fatto
Alcuni pacchetti non possono essere installati. Questo può voler dire
che è stata richiesta una situazione impossibile oppure, se si sta
usando una distribuzione in sviluppo, che alcuni pacchetti richiesti
non sono ancora stati creati o sono stati rimossi da Incoming.
Le seguenti informazioni possono aiutare a risolvere la situazione:

I seguenti pacchetti hanno dipendenze non soddisfatte:
 dconf-service : Dipende: default-dbus-session-bus oppure
                          dbus-session-bus
 dictionaries-common : Dipende: debconf (>= 1.5.5) ma non sta per essere installato oppure
                                debconf-2.0
                       Dipende: libtext-iconv-perl ma non sta per essere installato
 libasound2-plugins : Dipende: libavcodec57 (>= 7:3.4.2) ma non sta per essere installato oppure
                               libavcodec-extra57 (>= 7:3.4.2) ma non sta per essere installato
E: Errore, pkgProblemResolver::Resolve ha generato delle interruzioni. Questo potrebbe essere causato da pacchetti bloccati.

Che si risolve con:
Codice: Seleziona tutto
# apt update


Qui il problema è:
Codice: Seleziona tutto
[...]
rmdir: rimozione di '/lib/modules/4.6.0-1-amd64' non riuscita: Directory non vuota
[...]

per cui non dovrei creare la directory "kernel" in "/lib/modules/4.6.0-1-amd64/" ma, ancora una volta, non vorrei risolvere (sempre se risolvo) lasciando configurazioni errate in giro per il sistema. In fondo se tra i file che dpkg crede siano rimasti c'è la directory "kernel" deve pur significare qualcosa.
Avatar utente
s3v
Global Moderator
Global Moderator
 
Messaggi: 5584
Iscritto il: 31/12/2008, 11:54

Re: Rimozione pacchetto "ic"

Messaggioda s3v » 17/07/2018, 17:08

Ho risolto installando manualmente il pacchetto .deb e poi rimuovendolo.
Poiché:
Codice: Seleziona tutto
$ dpkg -l | grep linux-image-4.6.0-1.amd64
ic  linux-image-4.6.0-1-amd64                     4.6.4-1            ..................

la versione del pacchetto binario da scaricare è la 4.6.4-1.
Andando sugli snapshot ed eseguendo una ricerca tra i pacchetti binari si arriva qua e si scarica il pacchetto .deb voluto (nel mio caso "linux-image-4.6.0-1-amd64_4.6.4-1_amd64.deb").
Infine lo si installa e lo si rimuove:
Codice: Seleziona tutto
# apt install ./linux-image-4.6.0-1-amd64_4.6.4-1_amd64.deb
# apt purge linux-image-4.6.0-1-amd64
Avatar utente
s3v
Global Moderator
Global Moderator
 
Messaggi: 5584
Iscritto il: 31/12/2008, 11:54


Torna a Apt-get and friends

Chi c’è in linea

Visitano il forum: Nessuno e 0 ospiti

cron