Fix: Det gick inte att öppna låsfilen / var / lib / dpkg / lock

Att få det inte kunde öppna låsfilen / var / lib / dpkg / lock felmeddelande kan vara förvirrande eftersom det mycket väl kan fråga om du är root omedelbart efteråt även om du kör ett uppdateringskommando med sudo-prefixet. Detta felkommando kommer att dyka upp på nästan allt som använder apt-get-pakethanteraren. Oavsett om du uppdaterar en stationär eller bärbar dator som kör en av de olika versionerna av Ubuntu eller en Raspberry Pi med Raspbian Debian-spinnet, kan du upptäcka att det kan vara ett problem på någon av dessa plattformar.

Ändå är fixen ganska enkel. Du kan vanligtvis ignorera allt som frågar dig om du är root eller inte och går direkt till hjärtat av problemet, vilket är relaterat till två processer som försöker få åtkomst till en låst fil samtidigt.

Metod 1: Se till att sudo kan komma åt alla delar av kommandot

Om du skulle köra sudo apt-get update && apt-get upgrade kan du få det här felet eftersom den andra processen inte har rätt behörighet att komma åt filen / var / lib / dpkg / lock.

Försök istället att köra sudo apt-get update && sudo apt-get upgrade för att se om det gör någon skillnad. Om det gör det är ditt problem redan fixat och det berodde bara på att du inte gav den andra processen tillräckliga behörigheter för att komma åt filen. Tänk på att detta kommando uppdateras och sedan uppgraderar alla dina paket, så det kan uppmana dig att godkänna det och det kan ta en stund att köra.

Annars är problemet dock redan helt behandlat och du behöver inte göra något annat.

Metod 2: Ta bort filen / var / lib / dpkg / lock

De som använder curl, wget eller ett annat kommando som hämtar en fil diskret kan också behöva förordna kommandot med sudo om de arbetar från Raspbian eftersom detta i vissa fall tar plats för apt-get. De som arbetar med ren Debian, Xubuntu, Lubuntu, Linux Mint och andra liknande skrivbords- / bärbarbaserade behöver inte oroa sig för detta, men det kan vara värt ett nytt försök.

Om detta fortfarande inte fungerade kan du behöva kontrollera att du inte har något annat program som försöker komma åt filen medan du kör din uppdatering. Försök använda sudo lsof / var / lib / dpkg / lock för att se om några andra processer körs som har den öppen. Om du har öppnat någonstans kan du bara stänga applikationen.

Tänk på att ha en läs- och skrivåtkomst för en applikation för att öppna den här filen innebär i tillägg att programmet måste ha root-privilegier, så du behöver root-privilegier för att stänga programmet. Du kan till och med försöka titta igenom Task Manager-applikationen om du använder en grafisk skrivbordsmiljö som stöder den här funktionen. Högerklicka bara på den kränkande processen och stäng om du har behörighet att göra det. Testa kill- eller killall-kommandona från kommandoraden också.

Du kan nu försöka köra dina apt-get-kommandon igen och se om det gör någon skillnad, men du behöver inte göra något annat om det hade varit. Om du fortfarande har problem kan du försöka ta bort låsfilerna direkt. Även om detta bör ses som en sista utväg, orsakar det vanligtvis inga problem relaterade till apt-get-programmet. Du vill fortfarande använda andra metoder innan du gör det eftersom det kan röra sig med apt-systemet.

Ibland hjälper omstart om, men om du är på en ständigt på server eller en Raspbian-enhet kan det här inte vara ett genomförbart alternativ. Försök att köra sudo rm / var / lib / dpkg / lock && sudo rm / var / lib / apt / lists / lock , vilket frigör de specifika filer som apt tittar på när du kör den. Se till att du är försiktig med namnen på dessa filer, eftersom att köra rm som root är destruktivt.

Om du antar att du har gjort det efter att bara ha uttömt de andra alternativen kan du försöka köra dina uppdateringskommandon igen och se vad som händer. Du borde inte ha några ytterligare problem eftersom filerna inte längre skulle existera vid den tidpunkten, även om apt-get-rutinerna kommer att kunna bygga om dem medan de körs.