Imansible bloccare la directory di amministrazione (/ var / lib / dpkg /) è un altro processo che lo utilizza?

Ottengo questo errore quando provo ad usare apt-get :

 E: Could not get lock /var/lib/dpkg/lock - open (11 Resource temporarily unavailable) E: Unable to lock the administration directory (/var/lib/dpkg/) is another process using it? 

Come posso risolvere questo?

Questo dovrebbe essere usato come ultima risorsa. Se lo usi con noncuranza, puoi ritrovarti con un sistema rotto. Si prega di provare le altre risposte prima di fare questo.

È ansible eliminare il file di blocco con il seguente comando:

 sudo rm /var/lib/apt/lists/lock 

Potrebbe inoltre essere necessario eliminare il file di blocco nella directory della cache

 sudo rm /var/cache/apt/archives/lock sudo rm /var/lib/dpkg/lock 

Successivamente, prova ad aprire nuovamente Synaptic.

Vedo che praticamente tutte le risposte raccomandano l’eliminazione del lucchetto. Non consiglio di farlo come prima misura; forse se non ci sono alternative. Il blocco viene inserito quando è in esecuzione un processo apt e viene rimosso al termine del processo. Se c’è un blocco senza processo apparente in esecuzione, questo potrebbe significare che il processo si è bloccato per qualche motivo.

Se provi

 ps aux | grep apt 

quello prenderà i processi che contengono la parola apt , almeno. Se vedi un processo apt-get o un processo aptitude che sembra bloccato, puoi provare

 kill processnumber 

e se non funziona prova

 kill -9 processnumber 

Questo dovrebbe uccidere il processo e potrebbe rimuovere il lucchetto. Uccidere un processo apt o aptitude è innocuo a meno che non sia effettivamente nel mezzo dell’installazione del pacchetto. In ogni caso, se il processo si è bloccato, probabilmente non hai altra scelta che ucciderlo.

Uccidere direttamente un processo dpkg , se presente, non è una buona idea, perché se dpkg è attivo, probabilmente sta manipolando il database del pacchetto, e ucciderlo potrebbe lasciare il database del pacchetto in uno stato incoerente; cioè corrotto.

Uccidere un processo apt-get o aptitude è in generale molto più sicuro.

Rimuovi il tuo file /var/lib/dpkg/lock e forza la riconfigurazione del pacchetto.

 sudo rm /var/lib/dpkg/lock sudo dpkg --configure -a 

Dovrebbe funzionare dopo questo.

Riceverai questo messaggio se dimentichi di usare sudo quando esegui un comando apt.

Altrimenti questo è un segno che qualcos’altro sta installando o rimuovendo software e ha bloccato il database apt mentre esegue le azioni. I programmi che possono farlo sono:

  • Il Centro Software
  • Il gestore aggiornamenti
  • Il programma di installazione di link apt (penso che questo ora passi attraverso SC)
  • Le utilità della riga di comando apt-get o aptitude.
  • Il gestore di pacchetti Synaptic

IMPORTANTE: prova solo il sotto come ultima risorsa dal momento che può mandare in crash il tuo sistema. Prima prova a uccidere qualsiasi istanza di apt o aptitude in esecuzione come descritto nella risposta di Faheem .

È ansible forzare il blocco rimuovendo il file, ma non è consigliabile senza prima chiudere il programma che trattiene il blocco in modo sicuro , poiché si potrebbe causare il danneggiamento o interrompere un’installazione (errata). Il comando fornito da João dovrebbe chiudere il programma che contiene il blocco e quindi rimuovere il blocco ma non ti proteggerà dall’interruzione dell’installazione:

 sudo fuser -cuk /var/lib/dpkg/lock; sudo rm -f /var/lib/dpkg/lock 

E lo stesso comando può essere usato per il blocco della cache apt:

 sudo fuser -cuk /var/cache/apt/archives/lock; sudo rm -f /var/cache/apt/archives/lock 

Il modo più probabile per farlo è:

  • avviare Ubuntu
  • avviare un terminale
  • scrivi sudo apt-get install whatever

e la riga di comando apt sovrappone al polling di update-manager automaticamente.

Quindi, se provi di nuovo tra qualche minuto, dovresti risolverlo.

Solo un programma può contenere il blocco. Assicurati di non eseguire aptitude, synaptic o adept. Chiudere il programma ed eseguirlo di nuovo dovrebbe funzionare. Si può avere Synaptic aperto, o avere un’altra finestra di terminale aperta con apt-get o avere il gestore di aggiornamento in esecuzione. Controllare e vedere se qualcuno di questi è in esecuzione, se c’è ne loro stanno correndo vicino e riprovano.

Prova questo comando nel terminale per trovare ciò che è in esecuzione

 ps -e | grep -e apt -e adept | grep -v grep 

Nota:
Se ciò non stampa nulla, digitare quanto segue nel terminale per rimuovere il blocco

 sudo rm /var/lib/dpkg/lock sudo rm /var/cache/apt/archives/lock 

Ora puoi installare qualsiasi pacchetto.

Finora il modo migliore per farlo funzionare senza interrompere una ansible installazione in background (come potrebbe accadere rimuovendo il file di blocco), sta bloccando il servizio usando apt:

Errore:

 # sudo apt-get upgrade E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable) E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it?` 

Soluzione:

 sudo systemctl stop apt-daily.timer 

Dopo aver aggiornato il sistema, ti suggerisco di ritriggersrlo, poiché il problema potrebbe essere risolto con l’aggiornamento.

sudo systemctl start apt-daily.timer

Non ho verificato che questo errore venga corretto dopo l’aggiornamento. Aggiungerò un nuovo commento una volta verificato ciò

Prima di tutto dovremmo controllare quale processo ha creato il file di blocco usando lsof :

 sudo lsof /var/lib/dpkg/lock 

o in un’altra situazione in cui /var/lib/apt/lists/lock è problematico:

 sudo lsof /var/lib/apt/lists/lock 

L’output sarà vicino a qualcosa come:

 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME apt-get 12127 root 4uW REG 252,1 0 86 /var/lib/apt/lists/lock 

Quindi dovremmo controllare cosa sta facendo il comando, possiamo trovarlo usando ps , pgrep ecc; il comando è apt-get così eseguo:

 pgrep apt-get -a 

L’ -a elenca il comando completo per me, nel mio caso è:

  pgrep -a apt-get 12127 apt-get update 

possiamo vedere che è in esecuzione sottocomando update , potrei eseguire qualcosa di simile anche a questo:

 ps -f 12127 

che produce:

 UID PID PPID C STIME TTY STAT TIME CMD root 12127 12126 0 09:39 pts/0 S+ 0:00 apt-get update 

In questo caso, aspetterei qualche minuto prima che la risorsa venga liberata e se dopo 2 o 3 minuti il ​​problema esiste ancora o il comando era qualcosa di cui non mi importava o che non era dannoso per il sistema (come questo apt-get update ) Invio un SIGTERM al processo:

 sudo kill -15 12127 

Dovrebbe funzionare, Se così non fosse, invierò SIGINT questa volta (è come premere CTRL + C ):

 sudo kill -2 12127 

Se non ha funzionato, dovremmo inviare un SIGHUP ( kill -1 ), e infine se non funziona niente, semplicemente uccido il processo:

 sudo kill -9 12127 

o

 sudo pkill -9 apt-get 

Quindi rimuovo le risorse occupate:

 sudo rm /var/lib/apt/lists/lock 

Ciò si verifica se si dispone di “Update Manager” in esecuzione in parallelo per qualsiasi controllo di aggiornamento o installazione mentre il processo di installazione inserisce Lock. Se stai affrontando lo stesso errore senza ‘Update Manager’ in esecuzione devi rimuoverlo da /var/lib/dgkg/lock , che sicuramente non puoi farlo manualmente

 sudo fuser -cuk /var/lib/dpkg/lock sudo rm -f /var/lib/dpkg/lock 

funziona bene. Tratto da: https://askubuntu.com/a/15469/68707

Questo errore può essere causato dal gestore degli aggiornamenti che tenta di aggiornare automaticamente l’elenco dei pacchetti in background, in genere subito dopo l’accesso, bloccando in tal modo la directory.

In questo caso, è sufficiente attendere alcuni secondi (o più, se l’ultimo aggiornamento è trascorso molto tempo fa) per completare o avviare Update Manager per verificare lo stato.

Non essere così veloce da rimuovere qualcosa, potrebbe danneggiare totalmente il tuo sistema; piuttosto attendere fino a quando il programma di installazione o di disinstallazione in corso non termina la sua attività e dopo questo si otterrà l’accesso. Se pensi che al momento non ci sia nulla di installazione o di disinstallazione, riavvia il sistema con il comando sudo reboot .

Se si dispone di aggiornamenti di sicurezza impostati per l’installazione automatica, ciò avverrà frequentemente. Attendo letteralmente 30 secondi e risolve il problema. Basta lanciarlo là fuori nel caso in cui qualcun altro incontri questo problema.

Basta sudo rm -f /var/lib/apt/lists/lock e riprova.

apt-fast potrebbe essere responsabile per non sbloccare correttamente; questo succede a volte quando si interrompe anche apt-get o dpkg .

Non vedo questa risposta da nessuna parte sopra ma su Ubuntu 16.04 ho riscontrato anche questo problema. La causa è stata l’ora in cui il mio computer è stato impostato per il futuro . (Questo perché sono su un sistema dual boot Windows + Ubuntu e credo di aver incasinato l’ora locale rispetto all’ora UTC).

Una cosa strana era che la data e l’ora del file bloccato era la data e l’ora esatta in cui eseguivo il programma.

Ho quindi utilizzato “fuser” come descritto nei post precedenti e apt ha funzionato, ma ho ricevuto lamentele sulla necessità di eseguire dpkg -a -reconfigure . Quando l’ho fatto, ho ricevuto errori come:

 newline in field name #padding 

in file come ‘/ var / lib / dpkg / updates / 0003’.

Tutto ciò era molto strano come non l’avevo mai visto prima. Quindi, pensavo che questi fossero sintomi e ho cambiato i miei dati e il tempo manualmente. Sapevo che c’era un problema con la data / ora quando ho effettuato l’accesso, ma lo ignoravo. (In precedenza, lo stava impostando automaticamente via Internet e NTP).

Quindi, tutti i problemi di cui sopra sono stati risolti … Si spera che questo aiuti qualcun altro! Il sintomo più importante è forse la data / ora del file di blocco che rappresenta la data / ora esatta in cui si sta tentando di eseguire il comando.

Nel mio caso ho solo aspettato diversi minuti e il blocco è stato rilasciato (sembra che aptd usato per tenerlo premuto). Tutto questo è successo subito dopo l’avvio del sistema.

Ho avuto questo problema numerose volte. Per me, è stato quasi sempre causato da apt-get o da qualche interfaccia grafica che l’ha chiamata bloccata per qualche motivo. Ho dovuto ucciderlo che ha lasciato varie serrature sul posto.

Le altre risposte sollevano ottime considerazioni sull’assenza di aggiornamenti attualmente in esecuzione prima di fare qualcosa di drastico come rimuovere i file di blocco. Tuttavia, una volta che sei sicuro che non è il caso, il seguente di solito funziona per me. L’ho capito leggendo molte risposte a domande come questa.

Mentre la maggior parte o la totalità di questo viene presentata nelle altre risposte, questa distilla la correzione fino ad alcuni comandi.

 sudo fuser -vki /var/lib/dpkg/lock sudo fuser -vki /var/cache/apt/archives/lock sudo fuser -vki /var/cache/debconf/config.dat sudo dpkg --configure -a 

Utilizzare per sbloccare il sistema del pacchetto dopo un aggiornamento di qualche tipo si è arrestato in modo anomalo o terminato senza terminare in alcun altro modo. Questi comandi dovrebbero essere eseguiti nell’ordine presentato.

Nel mio caso ricevevo lo stesso messaggio non rendendomi conto di essere passato all’utente root e stavo provando sudo apt-get. Una volta capito questo, ho appena eseguito apt-get e ha funzionato. Sciocco, ma potrebbe ancora spiegare l’errore per alcuni.

Nel mio caso, X si è schiantato mentre apt-get stava ancora rimuovendo i vecchi kernel. Ho usato il monitor di sistema per confermare che era ancora in esecuzione e non bloccato. Tutto andava bene una volta terminato il processo.

nel mio caso, dopo:

  1. Apri Firefox.
  2. Terminale aperto

Ho digitato

 sudo apt update sudp apt upgrade 

poi ho i problemi

 E: Could not get lock /var/lib/dpkg/lock - open (11: Resource temporarily unavailable) E: Unable to lock the administration directory (/var/lib/dpkg/), is another process using it? 

Ho risolto il problema, eseguendo il comando che mi è stato mostrato dopo aver eseguito sudo apt update

 apt list --upgradable 

Questo comando ti mostrerà un elenco di programmi nel mio caso solo Firefox, ho chiuso Firefox, quindi ho potuto eseguire di nuovo il comando senza problemi.

 sudo apt upgrade 

Controllare il programma di avvio per verificare se Software Updater è in esecuzione. Se è così massimizzalo e guarda cosa sta facendo. Se sta ancora verificando, aspetta che si completi. Al termine potrebbe dirti che il software è aggiornato, quindi chiudi l’app. Se dice che ci sono aggiornamenti disponibili, fai l’aggiornamento o fai clic su “ricordamelo più tardi”. Dopo questa chiusura dell’app puoi tornare a utilizzare apt-get o apt .

Se Software Updater non è in esecuzione, basta usare il Dash per richiamarlo e attendere il completamento, quindi decidere se si desidera aggiornare o fare clic su “ricordamelo più tardi”. Dopo questa chiusura dell’app puoi tornare a utilizzare apt-get o apt .

 sudo killall -9 apt && sudo killall -9 dpkg 

Utilizzare a proprio rischio