it-swarm-eu.dev

Nelze uzamknout adresář pro správu (/ var / lib / dpkg /), je to jiný proces, který jej používá?

Při pokusu o použití 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?  

Jak to mohu opravit?

1058

To by mělo být použito jako poslední možnost. Pokud toto použijete neopatrně, můžete skončit s poškozeným systémem. Než to uděláte, zkuste jinéodpovědiprvní .

Soubor zámku můžete odstranit pomocí následujícího příkazu:

Sudo rm /var/lib/apt/lists/lock

Možná bude také nutné smazat soubor zámku v adresáři mezipaměti

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

Poté zkuste znovu otevřít Synaptic.

897
zurdo

Vidím skoro všechny odpovědi, které doporučuji odstranit zámek. Nedoporučuji to dělat jako první opatření; možná pokud neexistuje žádná alternativa. Zámek je umístěn, když je spuštěn proces apt, a je odstraněn po dokončení procesu. Pokud existuje zámek bez zjevného běhu procesu, může to znamenat, že se proces z nějakého důvodu zasekl.

Pokud se pokusíte

ps aux | grep [a]pt

nebo

pgrep -a apt

které zachytí alespoň procesy obsahující slovo apt. Pokud vidíte proces apt-get Nebo proces aptitude, který vypadá zaseknutý, můžete zkusit

Sudo kill processnumber

a pokud to nefunguje, zkuste to

Sudo kill -9 processnumber

To by mělo tento proces zabít a může dojít k odstranění zámku. Zabití procesu apt nebo aptitude je neškodné, pokud není skutečně uprostřed instalace balíčku. V každém případě, pokud se proces zasekl, pravděpodobně nemáte na výběr, ale zabít ho.

Přímé zabití procesu dpkg není dobrý nápad, protože pokud je aktivní dpkg, pravděpodobně manipuluje s databází balíčků a její zabití může ponechat databázi balíčků v nekonzistentních. Stát; tj. poškozený.

Zabití procesu apt-get Nebo aptitude je obecně mnohem bezpečnější.

684
Faheem Mitha

Odstraňte svůj soubor /var/lib/dpkg/lock A vynutit rekonfiguraci balíčku.

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

Poté by to mělo fungovat.

220
Bruno Pereira

Tato zpráva se zobrazí, pokud zapomenete použít Sudo při provádění příkazu apt.

V opačném případě je to znamení, že něco jiného instaluje nebo odstraňuje software a uzamkl databázi apt, zatímco provádí akce. Programy, které to dokáží, jsou:

  • Softwarové centrum
  • Správce aktualizací
  • Instalační program apt odkazu (myslím, že to nyní prochází SC)
  • Obslužné programy příkazového řádku apt-get nebo aptitude.
  • Správce balíků Synaptic

DŮLEŽITÉ: Vyzkoušejte pouze níže uvedené řešení jako poslední možnost, protože to může poškodit váš systém. Nejprve zkuste zabít jakoukoli běžící instanci apt nebo aptitude, jak je popsáno v Faheemova odpověď .

Zámek můžete vynutit odebráním souboru, ale to není doporučeno bez předchozího zavření programu, který drží zámek bezpečně , protože byste mohli způsobit poškození nebo přerušit instalaci (špatné). Příkaz poskytnutý Joãoem by měl zavřít program, který drží zámek a poté zámek odstranit, ale nechrání vás před přerušením instalace:

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

Stejný příkaz lze použít i pro zámek mezipaměti apt:

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

Nejpravděpodobnější způsob, jak to zasáhnout, je:

  • boot Ubuntu
  • spustit terminál
  • napište Sudo apt-get install whatever

a příkazový řádek apt se překrývá s update-manager automatické dotazování.

Takže pokud to zkusíte znovu za pár minut, které by to mělo opravit.

106
poolie

Zámek může držet pouze jeden program. Ujistěte se, že neběžíte aptitude, synaptický nebo adept. Ukončete program a spusťte jej znovu, měl by to fungovat. Možná máte otevřený synaptický program, nebo můžete otevřít jiné okno terminálu, které běží apt-get, nebo mít spuštěný správce aktualizací. běží těsně a zkuste to znovu.

Zkuste tento příkaz v terminálu a zjistěte, co je spuštěno

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

Poznámka:
Pokud se tím nic nevytiskne, do terminálu zadejte následující a odeberte zámek

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

Nyní můžete nainstalovat všechny balíčky.

52
karthick87

Nejlepším způsobem, jak to zajistit, aniž by došlo k přerušení možné instalace na pozadí (jak by se mohlo stát odstraněním souboru zámku), je zastavení služby pomocí apt:

Chyba:

# 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?`

Řešení:

Sudo systemctl stop apt-daily.timer

Po aktualizaci systému navrhuji jeho opětovné povolení, protože zamykání chyb by mohlo být opraveno aktualizací.

Sudo systemctl start apt-daily.timer

Po ověření jsem tuto chybu neopravil. Až to ověřím, přidám nový komentář

47
Jairelee

Nejprve bychom měli zkontrolovat, jaký proces vytvořil soubor zámku pomocí lsof:

Sudo lsof /var/lib/dpkg/lock

nebo v jiné situaci, kdy /var/lib/apt/lists/lock je problematické:

Sudo lsof /var/lib/apt/lists/lock

Výstup bude blízký něčemu jako:

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

Pak bychom měli zkontrolovat, co komanda dělá, můžeme to zjistit pomocí ps, pgrep atd .; příkaz je apt-get takže běžím:

pgrep apt-get -a

The -a switch vypíše úplný příkaz pro mě, v mém případě je to:

 pgrep -a apt-get
 12127 apt-get update

vidíme, že je spuštěn dílčí příkaz update, mohl bych také spustit něco podobného:

ps -f 12127

který produkuje:

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

V tomto případě bych čekal nějakou minutu, než se uvolní zdroj, a pokud po 2 nebo 3 minutách problém přetrvává nebo byl příkaz něčím, na čem mi nezáleželo nebo nebyl škodlivý pro systém (jako je tento apt-get update) Do procesu posílám SIGTERM:

Sudo kill -15 12127

Měl by to udělat práci, pokud to neudělal, tentokrát pošlu SIGINT (Je to jako stisknutí CTRL+C):

Sudo kill -2 12127

Pokud to také nefungovalo, měli bychom poslat SIGHUP (kill -1) a konečně, pokud nic nefunguje, proces jednoduše zabiju:

Sudo kill -9 12127

nebo

Sudo pkill -9 apt-get

Poté odstraním zaneprázdněné prostředky:

Sudo rm /var/lib/apt/lists/lock
33
Ravexina

Tato chyba může může být způsobena tím, že se Správce aktualizací pokouší automaticky aktualizovat seznam balíčků na pozadí, obvykle ihned po přihlášení, čímž zamkne adresář.

V takovém případě počkejte několik sekund (nebo více, pokud vaše poslední aktualizace byla dávno), než bude dokončena, nebo spusťte Správce aktualizací a zkontrolujte stav.

21
Cavaz

Neodstraňujte něco rychle, může to zcela poškodit váš systém; raději počkejte, dokud aktuálně nainstalovaný nebo odinstalační program nedokončí svůj úkol a poté získáte přístup. Pokud si myslíte, že v současné době není nic instalovat nebo odinstalovat, restartujte systém příkazem Sudo reboot.

17
Wessi

To se stane, pokud máte paralelně spuštěn „Správce aktualizací“ pro jakoukoli kontrolu aktualizace nebo instalaci jako místo instalace. Pokud čelíte stejné chybě bez spuštění Správce aktualizací, musíte ji odebrat z /var/lib/dgkg/lock, což rozhodně nemůžete udělat ručně

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

funguje dobře. Převzato z: https://askubuntu.com/a/15469/68707

16
Nabeel Ahmed

Pokud máte automatické aktualizace nastaveny na automatickou instalaci, k tomu dojde často. Doslova čekám 30 sekund a vyřeší to problém. Jednoduše to vyhoďte v případě, že se s tímto problémem setká někdo jiný.

10
Wh33t

V mém případě jsem musel čekat několik minut, než se zámek uvolní (vypadá to, že ho držel apt). To vše se stalo hned po spuštění systému.

6
Pavel Vlasov

Tento problém jsem měl mnohokrát. Pro mě to bylo téměř vždy způsobeno apt-get nebo nějakým GUI, které to z nějakého důvodu označovalo za zavěšení. Musel jsem to zabít, což nechalo různé zámky na místě.

Další odpovědi přinášejí velmi dobré body, pokud jde o to, zda nejsou aktuálně spuštěny žádné aktualizace, než provedou něco drastického, jako je například odstranění souborů zámku. Jakmile si však budete jistí, že tomu tak není, následující práce pro mě obvykle funguje. Dostal jsem to přečtením mnoha odpovědí na otázky, jako je tato.

Zatímco většina nebo vše je uvedeno v ostatních odpovědích, vyřeší se to oprava několika příkazů.

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

Slouží k odemknutí balíku po aktualizaci nějakého druhu havaroval nebo ukončil bez dokončení jiným způsobem. Tyto příkazy by měly být spouštěny v uvedeném pořadí.

4
Joe

Prostě Sudo rm -f /var/lib/apt/lists/lock a zkusit znovu.

apt-fast MŮŽE být zodpovědný za to, že se neodemkne správně; k tomu někdy dochází, když zrušíte apt-get nebo dpkg také.

4
ish

V mém případě X havaroval, zatímco apt-get stále odstraňoval stará jádra. Použil jsem System Monitor k potvrzení, že stále běží a není zaseknutý. Po dokončení procesu bylo všechno v pořádku.

3
wjandrea

Tuto odpověď nevidím nikde výše, ale na Ubuntu 16.04 jsem narazil také na tento problém. Příčinou bylo, že čas v mém počítači byl nastaven na budoucí. (Důvodem je, že jsem na duálním spouštěcím systému Windows + Ubuntu a myslím, že jsem zmatil místní čas vs čas UTC.)

Jedna zvláštní věc byla, že datum a čas zamčeného souboru bylo přesné datum a čas, kdy jsem program spustil.

Poté jsem použil „fixační jednotku“, jak je popsáno v předchozích příspěvcích, a apt pracoval, ale dostával jsem stížnosti na potřebu spustit dpkg -a -reconfigure. Když jsem to udělal, dostal jsem chyby jako:

newline in field name #padding

v souborech jako '/ var/lib/dpkg/updates/0003'.

To všechno bylo velmi podivné, protože jsem to nikdy předtím neviděl. Takže jsem si myslel, že se jedná o příznaky a ručně jsem změnil data a čas. Věděl jsem, že se vyskytl problém s datem a časem, kdy jsem se přihlásil, ale ignoroval jsem to. (Dříve to bylo automatické nastavení prostřednictvím Internetu a NTP).

Poté byly vyřešeny všechny výše uvedené problémy ... Doufejme, že to pomůže někomu jinému! Nejvýznamnějším příznakem je pravděpodobně datum/čas souboru zámku, který je přesným datem a časem, který se pokoušíte příkaz spustit.

3
Ray

Zkontrolujte Spouštěč a zkontrolujte, zda Software Updater běží. Pokud ano, maximalizujte to a podívejte se, co dělá. Pokud stále kontroluje, počkejte na dokončení. Po dokončení by vám mohlo říct, že je software aktuální, takže aplikaci ukončete. Pokud je uvedeno, že jsou k dispozici aktualizace, proveďte aktualizaci nebo klikněte na „připomenout později“. Poté, co se tato aplikace zavře, se můžete vrátit k použití apt-get nebo apt.

Pokud Software Updater neběží, stačí ho vyvolat pomocí Dash a čekat na dokončení a pak se rozhodnout, zda chcete aktualizovat, nebo klikněte na „připomenout později“. Poté, co se tato aplikace zavře, se můžete vrátit k použití apt-get nebo apt.

3
H2ONaCl
Sudo killall -9 apt && Sudo killall -9 dpkg

Použití na vlastní nebezpečí

2
noone

V mém případě jsem dostával stejnou zprávu tím, že jsem si neuvědomil, že jsem přešel na uživatele root a snažil se Sudo apt-get. Jakmile jsem si to uvědomil, spustil jsem apt-get a fungovalo to. Hloupé, ale pro některé by to stále mohlo vysvětlit chybu.

2
BluePython

Na této stránce jsem vyzkoušel nejlepší odpovědi na nejvyšší verzi, které pro mě vždy fungovaly bez výjimky, ale objevil jsem snadnější způsob, jak tento problém vyřešit. Nejprve nějaká teorie. Co se stane, než se uživateli zobrazí tato chybová zpráva?

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?  

/var/lib/dpkg/lock je uzamčeno, takže terminál jej dočasně nemůže použít, ale jakým procesem je uzamčen? To záleží na okolnostech. Pokud jste zavedli počítač před několika minutami, je pravděpodobně uzamčen aplikací Software Updater. Zkuste zavřít terminál a spusťte aplikaci Software Updater. Po dokončení aktualizace softwaru odebere svůj vlastní zámek, aniž by uživatel musel spouštět jakékoli příkazy v terminálu.

Další případ, kdy je tato odpověď užitečná, je v VM při zavádění hostujícího operačního systému Ubuntu, který je po nějakou dobu neaktivní. Hostující operační systém Ubuntu se obvykle začíná aktualizovat téměř okamžitě. Proces aktualizace se často zamkne. příkazy, které vyžadují instalaci, odebrání nebo aktualizaci softwaru, dokud nedokončí. Otevřete Software Updater, nechte jej dokončit běh a nainstalujte všechny aktualizace, které chcete nainstalovat. Software Updater po dokončení odstraní svůj vlastní zámek.

0
karel

Jako většina ostatních jsem čekal, až bude zámek odstraněn. Po 30 minutách jsem se vzdal a tvrdě zaváděl jinou distribuci. Odtud jsem použil internet k nějakému výzkumu, který mě sem přistál.

Ukázalo se, unattended-upgrades.service běží. Zjistil jsem, že se restartuje do nefunkčního systému a běží:

Sudo systemctl disable apt-daily.service
Sudo systemctl disable unattended-upgrades.service
Sudo systemctl disable apt-daily-upgrade.service
Sudo systemctl disable apt-daily-upgrade.timer
Sudo systemctl disable apt-daily.timer
Sudo shutdown -r # Note it will take a couple minutes to reboot

dovolil mi, aby nefunkční systém znovu pracoval pro:

Sudo apt update
Sudo apt upgrade
Sudo apt install -f

Nejprve to však neopravilo udržované balíčky a nemožnou situaci nahlášenou apt. Zdálo by se, že to způsobovalo, že se apt nejprve zamkla při bootování.

0

Pro lidi, kteří mají zájem aktivně zabránit této chybě ve svých skriptech, jsem zjistil, že příznak -q na apt upgrade -yq byl pro mě tento problém. Během procesu upgradu myslím, že by mi to občas dalo varování (něco v souladu s aktualizací plochy, rád bych pokračoval), a pokud tato varování byla potlačena, pak myslím, že to způsobí, že apt neodemkne soubory, které chrání a to uvízlo.

Nepochybně jsem měl problém s reprodukcí této chyby na 100% času, ale eliminace této možnosti -q mě úplně vyřešila.

0
Tyrel Kostyk