GNU/Linux >> Znalost Linux >  >> Ubuntu

Oprava chyby „nepodařilo se získat zámek /var/lib/dpkg/lock“ jednou provždy (Ubuntu)

"could not get lock /var/lib/dpkg/lock “ chyba je docela běžná v Debian/Ubuntu běžícím na virtuálním počítači. Stávající zástupná řešení na internetu (tj. zabít proces apt-get nebo odstranit soubor zámku) nejsou ideální, protože mohou poškodit váš systém a v budoucnu budete čelit stejné chybě znovu.

Oprava chyby „Nelze získat zámek /var/lib/dpkg/lock“ Jednou provždy

Řeknu vám skutečnou příčinu této chyby a ukážu vám, jak ji jednou provždy opravit. Chybová zpráva je následující:

E:Nelze získat zámek /var/lib/dpkg/lock - otevřít (11:Zdroj dočasně nedostupný)E:Nelze zamknout administrační adresář (/var/lib/dpkg), používá jej jiný proces? 

Chybová zpráva vám již naznačuje příčinu problému:jiný proces používá /var/lib/dpkg/ . Je to proto, že Ubuntu ve výchozím nastavení umožňuje bezobslužné upgrady pro aktualizaci zabezpečení.

Když váš operační systém Ubuntu dokončí bootování, automaticky se spustí apt-get update příkaz. Pokud jsou k dispozici aktualizace zabezpečení, nainstaluje je na pozadí. Pokud tedy spustíte sudo apt upgrade příkaz současně, zobrazí se výše uvedená chyba. Protože Ubuntu ve Virtualboxu nebo pracovní stanici VMware nepoužíváte tak často jako Ubuntu na holém kovu, váš virtuální stroj Ubuntu se aktualizuje jen zřídka, takže se s touto chybou setkáte častěji.

Ať už používáte desktop Ubuntu na holém kovu nebo ve virtuálním počítači, můžete zakázat bezobslužné upgrady, abyste tento problém vyřešili jednou provždy.

Poznámka:Tato chyba se na serveru Ubuntu vyskytuje jen zřídka a doporučuje se povolit bezobslužné upgrady na serverech, aby se aktualizace zabezpečení instalovaly automaticky.

Zde je návod. Otevřete Software & Updates z nabídky aplikace.

Poté klikněte na updates tab. Ve výchozím nastavení se aktualizace zabezpečení stahují a instalují automaticky. Můžete jej změnit na display immediately , takže se nespustí sudo apt-get upgrade příkaz na pozadí.

Poté zadejte své uživatelské heslo, aby se tato změna projevila.

Poté restartujte počítač.

Zakázat bezobslužné upgrady z příkazového řádku

Stejných výsledků můžete dosáhnout také z příkazového řádku. Ve svém terminálu otevřete /etc/apt/apt.conf.d/20auto-upgrades pomocí textového editoru příkazového řádku, jako je nano.

sudo nano /etc/apt/apt.conf.d/20auto-upgrades

Původní obsah je následující:

APT::Periodic::Update-Package-Lists "1";APT::Periodicky::Download-Upgradeable-Packages "1";APT::Periodic::AutocleanInterval "0";APT::Periodické::Bezobslužný upgrade „1“;

Chcete-li zakázat automatické aktualizace zabezpečení, změňte je na

APT::Periodic::Update-Package-Lists "1";APT::Periodicky::Download-Upgradeable-Packages "0";APT::Periodic::AutocleanInterval "0";APT::Periodicky::Bezobslužný upgrade "0";

Chcete-li soubor uložit v textovém editoru Nano, stiskněte Ctrl+O a poté stiskněte Enter pro potvrzení názvu souboru. Stiskněte Ctrl+X k východu. Poté restartujte počítač.

Aktualizovat

Čtenář mi řekl, že po provedení výše uvedených pokynů může být chybová zpráva stále vidět, pokud spustí sudo apt update příkaz ihned po dokončení spuštění Ubuntu. Je to proto, že pozadí „apt update “ ještě není dokončeno.

Pokud jste člověk, který často aktualizuje balíčky ručně, doporučil bych nastavit „automaticky kontrolovat aktualizace“ na weekly místo daily . Chcete-li chybovou zprávu skutečně jednou provždy opravit, nastavte hodnotu na Never .

Kdy Ubuntu provádí bezobslužné upgrady?

Ubuntu provádí bezobslužné aktualizace po spuštění systému. Systemd může také provádět bezobslužné upgrady. apt-daily.service se používá k denní aktualizaci seznamu balíčků a apt-daily-upgrade.service se používá ke každodennímu stahování a instalaci aktualizací zabezpečení. Jejich stav můžete zkontrolovat pomocí:

stav systemctl apt-daily.servicesystemctl stav apt-daily-upgrade.service

apt-daily.service je řízen pomocí apt-daily.timer . Časovač je jako úloha cron, která v určených časech spouští službu systemd se stejným názvem. apt-daily.timer Konfigurační soubor je /lib/systemd/system/apt-daily.timer . Jeho obsah můžete zkontrolovat pomocí:

cat /lib/systemd/system/apt-daily.timer

Výstup:

[Unit]Description=Denní apt stahování aktivit[Timer]OnCalendar=*-*-* 6,18:00RandomizedDelaySec=12hPersistent=true[Install]WantedBy=timers.target

Zelená čára označuje apt-daily.service probíhá každý den v 6:00 a 18:00. RandomizedDelaySec=12h znamená, že akce bude odložena o 0 ~ 12 hodin, pokud má jiný časovač stejný čas začátku.

apt-daily-upgrade.service je řízen pomocí apt-daily-upgrade.timer , jehož konfigurační soubor je /lib/systemd/system/apt-daily-upgrade.timer .

cat /lib/systemd/system/apt-daily-upgrade.timer

Výstup:

[Unit]Description=Denní aktualizace apt a čisté aktivityAfter=apt-daily.timer[Timer]OnCalendar=*-*-* 6:00RandomizedDelaySec=60mPersistent=true[Install]WantedBy=timers.target

Jak můžete vidět, apt-daily-upgrade.service probíhá každý den v 6:00. RandomizedDelaySec=60m znamená, že akce bude odložena o 0 ~ 60 minut, pokud má jiný časovač stejný čas začátku.

Dva .service soubory a dva .timer soubory instaluje apt balíček, který je dodáván také s /usr/lib/apt/apt.systemd.daily shell skript, který spouští apt-daily.service a apt-daily-upgrade.service .

 /usr/lib/apt/apt.systemd.daily shell skript čte konfigurace z /etc/apt/apt.conf.d/20auto-upgrades soubor. Oprava výše uvedené chyby tedy nevyžaduje deaktivaci dvou časovačů.

A je to! Doufám, že vám tento článek pomohl opravit „could not get lock /var/lib/dpkg/lock “chyba na Ubuntu. Jako vždy, pokud pro vás byl tento příspěvek užitečný, přihlaste se k odběru našeho bezplatného zpravodaje, kde získáte další tipy a triky. Opatruj se 🙂


Ubuntu
  1. Oprava „Nelze získat zámek frontendu dpkg. Jste root?" Chyba v Ubuntu a dalších distribucích Linuxu

  2. Rozdíl mezi /var/log/messages, /var/log/syslog a /var/log/kern.log?

  3. Proč Webp Utilities postavené na Ubuntu 14.04 nefungují a zobrazují chybu knihovny?

  1. Oprava chyby „dpkg:chyba:parsování souboru „/var/lib/dpkg/updates/0014′“ v Ubuntu

  2. Jak opravit chybu „Nelze získat zámek / var / lib / dpkg / lock – otevřít (11 zdrojů dočasně nedostupných)

  3. Jak opravit chybu „Lockfile / var / lib / dpkg / lock-frontend nelze otevřít“

  1. Opravte chybu „add-apt-repository command not found“ na Ubuntu a Debianu

  2. Ubuntu E:Nelze získat chybu lock /var/lib/dpkg/lock – opravit to hned?

  3. Jak zabít proces držení zámku Apt?