Tento stručný průvodce vám pomůže opravit chybu „E:Nelze získat zámek /var/lib/dpkg/lock“ na Ubuntu. K tomu obvykle dojde, když na pozadí již běží jiná operace apt.
Mám virtuální stroj Ubuntu 18.04 LTS, který používám pro účely testování. Kdykoli spustím tento virtuální počítač a pokusím se aktualizovat nebo nainstalovat jakoukoli aplikaci pomocí správce balíčků APT, zobrazí se následující chyba:
E:Nelze získat zámek /var/lib/dpkg/lock-frontend - otevřený (11:Zdroj dočasně nedostupný)E:Nelze získat zámek frontendu dpkg (/var/lib/dpkg/lock-frontend), používá to jiný proces?
Nebo podobné chyby jako níže:
E:Nelze získat zámek /var/lib/dpkg/lock - otevřít (11 Prostředek dočasně nedostupný)E:Nelze zamknout administrační adresář (/var/lib/dpkg/), používá jej jiný proces?E:Nelze získat zámek /var/lib/apt/lists/lock – otevřít (11:Zdroj dočasně nedostupný)E:Nelze zamknout adresář /var/lib/apt/lists/Stává se to pokaždé. Musel jsem několik minut počkat, abych provedl vhodnou operaci.
Vím, že nějaký proces zablokoval databázi apt při instalaci nebo odebírání softwaru nebo aktualizaci systému na pozadí. Spustil jsem "top" příkaz k prozkoumání seznamu běžících procesů. Když jsem se podíval na výstup příkazu top, zjistil jsem, že existuje proces zvaný bezobslužná aktualizace , která spouští apt update pokaždé, když zapnu svůj virtuální stroj Ubuntu. Zatímco aktualizace apt běží, databáze apt je uzamčena a nemohl jsem provést žádnou operaci apt.
Oprava chyby „E:Nelze získat zámek /var/lib/dpkg/lock“ v Ubuntu
Pokud jste někdy narazili na tento problém, počkejte několik minut, než se dokončí aktuální úloha instalace nebo aktualizace nebo odinstalace. Tento proces bude nějakou dobu trvat (5 až 10 minut nebo déle) v závislosti na velikosti aktualizace. Po dokončení tohoto úkolu se zámek automaticky uvolní.
Pokud se ale proces z nějakého důvodu zasekne a na několik minut zamkne databázi apt, nemáte jinou možnost, než zámek odstranit. V takovém případě to opravte podle níže uvedeného postupu.
Nejprve zjistíme, který proces vlastní soubor zámku, tj. /var/lib/dpkg/lock .
$ sudo lsof /var/lib/dpkg/lockPokud se soubor zámku liší, například /var/lib/dpkg/lock-frontend , můžete najít PID procesu, který vlastní tento soubor zámku, příkazem:
$ sudo lsof /var/lib/dpkg/lock-frontendPokud je soubor zámku "/var/lib/apt/lists/lock" , spustit:
$ sudo lsof /var/lib/apt/lists/lockUkázkový výstup:
PŘÍKAZ PID UŽIVATEL FD TYP VELIKOST ZAŘÍZENÍ/VYP. NÁZEV UZLUunattende 1548 root 6uW REG 8,2 0 1181062 /var/lib/dpkg/lock![]()
E:Nelze získat zámek /var/lib/dpkg/lock-frontend - otevřít (11:Zdroj dočasně nedostupný)
Jak můžete vidět na výše uvedeném výstupu, PID procesu, který drží soubor zámku, je 1548 .
Jednoduše ho zabijte, abyste uvolnili zámek pomocí příkazu:
$ sudo kill -9 1548Nyní můžete bezpečně odstranit zámek pomocí příkazů:
$ sudo rm /var/lib/dpkg/lockNebo,
$ sudo rm /var/lib/dpkg/lock-frontendNebo,
$ sudo rm /var/lib/apt/lists/lockMožná budete muset odstranit soubor zámku v adresáři mezipaměti:
$ sudo rm /var/cache/apt/archives/lockPo odstranění zámku spusťte:
$ sudo dpkg --configure -aTo by mělo problém vyřešit.
Tato metoda bude fungovat dobře 99% času. Ale mějte prosím na paměti, že pokud proces aktualizace běží a vy jste proces zastavili uprostřed instalace balíčku, můžete skončit s poškozeným systémem. V takových případech nepropadejte panice, pouze postupujte podle níže uvedeného průvodce a opravte to.
- Jak opravit poškozený operační systém Ubuntu bez jeho přeinstalace
Hodně štěstí!
Související čtení:
- Jak zakázat bezobslužné upgrady na Ubuntu