Fix: Kunne ikke åbne fil / var / lib / dpkg / status

Du får muligvis en ubehagelig "kunne ikke åbne fil / var / lib / dpkg / status" -fejl eller noget lignende, hvis du har stukket rundt i / var / lib / dpkg / biblioteket og ryddet ting ud som rodbrugere. De fleste filer i / var, i henhold til Linux Filesystem Hierarchy Standard, er midlertidige og ændres under drift. Det betyder dog ikke, at de skal renses på samme måde, som en webbrowser-cache skal ryddes.

Da de fleste Linux-brugere ikke har behov for at poke rundt her, er den gode nyhed, at du sandsynligvis ikke får denne næsten nogensinde. De, der er på distributioner, der ikke bruger apt-get, såsom Fedora eller Arch, får heller ikke denne fejl, da den er helt specifik for den pakkehåndtering. Ikke desto mindre, hvis du har at gøre med det, så læs videre.

Metode 1: At rette en tilsyneladende tilfældig kunne ikke åbne fil / var / lib / dpkg / statusfejl

Hvis denne fejl kommer ud af det blå, skal du skrive ls / var / lib / dpkg / status på kommandolinjen og se på output.

Du vil muligvis også bruge en grafisk filhåndtering til browseren over til den og tage et kig.

Sørg for, at du ser en statusfil i resultaterne. Du får normalt bare en linje, der læser / var / lib / dpkg / status med intet andet efter det, før det returnerer dig direkte til prompten. Hvis det er tilfældet, har du en fil der, og du skal være okay. Luk alle de programmer, du arbejdede i efter at have gemt, og genstart derefter.

Når du er kommet i gang igen, skal du skrive sudo apt-get opdatering efterfulgt af sudo apt-get opgradering ved terminalen og følg anvisningerne. Du bliver sandsynligvis bedt om din administratoradgangskode, men når den opdateres, skal du have det godt. Du vil gerne se efter eventuelle ulige fejl.

Hvis filen ikke var der, har du nogle beslutninger at tage.

Metode 2: Genskab / var / lib / dpkg / status

Nogle brugere sikkerhedskopierer alle deres vigtige data på dette tidspunkt, inden de geninstallerer Linux. Du kunne gøre dette, men der kan muligvis være en måde at redde tingene først. Der er en sikkerhedskopi af / var / lib / dpkg / status, der bliver lavet automatisk, og forhåbentlig er der ikke gået for meget tid, siden du fik den fejl, at den fik den til at være ude af synkronisering.

Prøv at løbe sudo cp / var / lib / dpkg / status-old / var / lib / dpkg / status ved terminalen. Hvis dette ikke giver dig en fejl, kan du se, om dette løste problemet. Dette gendanner den seneste sikkerhedskopi af statusfilen, men hvis den var for forældet, er du muligvis stadig i varmt vand. Ikke desto mindre kan du genstarte og derefter køre sudo apt-get opdatering efterfulgt af sudo apt-get opgradering for at se, hvilke slags afhængighedsfejl der ender med at komme op for dig. I et bedste tilfælde vil du ikke have nogen, og du vil blot kunne fortsætte med at arbejde med dit system igen som normalt.

Du kan også prøve at genopbygge statuslisten. Type sudo touch / var / lib / dpkg / status for at oprette en tom fil som rodbruger og derefter prøve sudo apt-get install long-list fra terminalen. Der er et par scripts, der gør dette automatisk, men dette er stort set det samme og kommer uden farerne ved at køre et potentielt forældet script på din maskine. Vær advaret om, at du bliver nødt til at huske, hvad du har på dit system for at dette skal fungere, og softwaren vil bede dig om at huske det.

Du kan også prøve ls /var/backups/dpkg.status* og se, hvad der er der, som du måske i stedet vil bruge til dette.

Se på listen, der kommer op, når du kører den. Hvis du ser en, der ikke er lynlås, så prøv sudo cp /var/backups/dpkg.status.0 / var / lib / dpkg / status og se om det løser ting. Du kan altid kopiere en af ​​de andre og køre gunzip-kommandoen på den for at dekomprimere den. Husk dog, at jo længere tilbage du går jo højere er din risiko for at opdatere en forældet fil, der ville medføre ødelagte afhængigheder