Poprawka: nie można otworzyć pliku / var / lib / dpkg / status

Możesz otrzymać nieprzyjemny błąd „nie można otworzyć pliku / var / lib / dpkg / status” lub coś podobnego, jeśli grzebałeś w katalogu / var / lib / dpkg / i usuwałeś rzeczy jako użytkownicy root. Większość plików znajdujących się w / var, zgodnie z Linux Filesystem Hierarchy Standard, ma charakter tymczasowy i zmienia się podczas działania. Nie oznacza to jednak, że należy je wyczyścić w taki sam sposób, w jaki należy wyczyścić pamięć podręczną przeglądarki internetowej.

Ponieważ większość użytkowników Linuksa nie ma potrzeby zaglądać tutaj, dobrą wiadomością jest to, że prawdopodobnie nie dostaniesz tego prawie nigdy. Ci, którzy są w dystrybucjach, które nie używają apt-get, takich jak Fedora lub Arch, również nigdy nie otrzymają tego błędu, ponieważ jest on całkowicie specyficzny dla tego menedżera pakietów. Niemniej jednak, jeśli masz do czynienia z tym, czytaj dalej.

Metoda 1: Naprawienie pozornie losowego błędu nie mogło otworzyć pliku / var / lib / dpkg / status Error

Jeśli ten błąd pojawia się nieoczekiwanie, wpisz ls / var / lib / dpkg / status w wierszu poleceń i spójrz na wynik.

Możesz również użyć graficznego menedżera plików do przeglądarki i rzucić okiem.

Upewnij się, że w wynikach widzisz plik stanu. Zwykle po prostu otrzymasz wiersz, który czyta / var / lib / dpkg / status, a po nim nic więcej, zanim zwróci cię bezpośrednio do zachęty. Jeśli tak jest, to masz tam plik i wszystko powinno być w porządku. Po zapisaniu zamknij wszystkie programy, w których pracowałeś, a następnie uruchom ponownie.

Po utworzeniu kopii zapasowej i uruchomieniu wpisz sudo apt-get update, a następnie sudo apt-get upgrade na terminalu i postępuj zgodnie z instrukcjami. Prawdopodobnie zostaniesz poproszony o podanie hasła administratora, ale po aktualizacji powinno być dobrze. Będziesz chciał uważać na wszelkie dziwne błędy.

Jeśli pliku tam nie było, będziesz musiał podjąć kilka decyzji.

Metoda 2: Odtworzenie / var / lib / dpkg / status

Niektórzy użytkownicy wykonują kopię zapasową wszystkich swoich ważnych danych w tym momencie przed ponowną instalacją Linuksa. Mógłbyś to zrobić, ale najpierw może być sposób na uratowanie rzeczy. Istnieje kopia zapasowa / var / lib / dpkg / status, która jest tworzona automatycznie i miejmy nadzieję, że nie minęło zbyt dużo czasu, odkąd pojawił się błąd, który spowodował brak synchronizacji.

Spróbuj uruchomić sudo cp / var / lib / dpkg / status-old / var / lib / dpkg / status na terminalu. Jeśli to nie powoduje błędu, możesz sprawdzić, czy to rozwiązało problem. Spowoduje to przywrócenie najnowszej kopii zapasowej pliku stanu, ale niestety, jeśli była zbyt nieaktualna, nadal możesz być w gorącej wodzie. Niemniej jednak możesz zrestartować, a następnie uruchomić sudo apt-get update, a następnie sudo apt-get upgrade, aby zobaczyć, jakie rodzaje błędów zależności się pojawią. W najlepszym przypadku nie będziesz ich mieć i będziesz mógł po prostu kontynuować pracę z systemem w normalny sposób.

Możesz także spróbować odbudować listę statusu. Wpisz sudo touch / var / lib / dpkg / status, aby utworzyć pusty plik jako użytkownik root, a następnie spróbuj sudo apt-get install long-list z terminala. Istnieje kilka skryptów, które robią to automatycznie, ale jest to zasadniczo to samo i nie wiąże się z niebezpieczeństwem uruchomienia potencjalnie przestarzałego skryptu na komputerze. Ostrzegamy, że będziesz musiał zapamiętać, co masz w systemie, aby to zadziałało, a oprogramowanie poprosi Cię o zapamiętanie.

Możesz również wypróbować ls /var/backups/dpkg.status* i zobaczyć, które z nich są, których możesz zamiast tego użyć.

Spójrz na listę, która pojawia się po uruchomieniu tego. Jeśli zobaczysz taki, który nie jest spakowany, wypróbuj sudo cp /var/backups/dpkg.status.0 / var / lib / dpkg / status i sprawdź, czy to naprawi. Zawsze możesz skopiować jeden z pozostałych i uruchomić na nim polecenie gunzip, aby go zdekompresować. Należy jednak pamiętać, że im dalej się cofniesz, tym większe jest ryzyko aktualizacji przestarzałego pliku, który spowodowałby zepsute zależności