Виправлення: Не вдалося відкрити файл / var / lib / dpkg / status

Можливо, ви отримаєте неприємну помилку "не вдалося відкрити файл / var / lib / dpkg / status" або щось подібне, якщо ви тикаєтесь у каталозі / var / lib / dpkg / і очищаєте речі як кореневі користувачі. Більшість файлів, розташованих у / var, відповідно до стандарту ієрархії файлової системи Linux, є тимчасовими та змінюються під час роботи. Однак це не означає, що їх потрібно очищати так само, як і кеш веб-браузера.

Оскільки більшості користувачів Linux не потрібно тут тикатися, хороша новина полягає в тому, що ви, мабуть, цього не отримаєте майже ніколи. Ті, хто перебуває у дистрибутивах, які не використовують apt-get, таких як Fedora або Arch, ніколи не отримають цієї помилки, оскільки вона цілком специфічна для цього менеджера пакетів. Тим не менше, якщо ви маєте справу з цим, читайте далі.

Спосіб 1: Виправлення, здавалося б, випадкового, не могло відкрити файл / var / lib / dpkg / status Error

Якщо ця помилка з’являється несподівано, введіть ls / var / lib / dpkg / status у командному рядку та подивіться на результат.

Можливо, ви захочете скористатися графічним файловим менеджером для перегляду браузера та поглянути.

Переконайтеся, що у результатах ви бачите файл стану. Зазвичай ви просто отримаєте рядок, який читає / var / lib / dpkg / status, нічого іншого після нього, перш ніж він поверне вас прямо до запиту. Якщо це так, то у вас там є файл, і ви повинні бути в порядку. Після збереження закрийте всі програми, в яких ви працювали, а потім перезавантажте.

Після того, як ви відновите і запустіть, введіть sudo apt-get update, а потім оновіть sudo apt-get на терміналі та дотримуйтесь вказівок. Напевно, вас запитають пароль адміністратора, але як тільки він оновиться, у вас все буде добре. Ви хочете стежити за будь-якими непарними помилками.

Якщо файлу там не було, то вам доведеться прийняти деякі рішення.

Спосіб 2: Відтворення / var / lib / dpkg / status

На даний момент деякі користувачі резервно копіюють усі свої важливі дані перед тим, як перевстановити Linux. Ви могли б це зробити, але, можливо, спочатку можна врятувати речі. Існує резервна копія / var / lib / dpkg / status, яка робиться автоматично, і, сподіваємось, минуло не так вже й багато часу, оскільки ви отримали помилку, через яку вона не синхронізувалась.

Спробуйте запустити sudo cp / var / lib / dpkg / status-old / var / lib / dpkg / status на терміналі. Якщо це не призводить до помилки, ви можете побачити, чи це вирішило проблему. Це відновлює останню резервну копію файлу стану, але, на жаль, якщо вона була занадто застарілою, ви все ще можете бути в гарячій воді. Тим не менш, ви можете перезапустити, а потім запустити оновлення sudo apt-get з подальшим оновленням sudo apt-get, щоб побачити, які типи помилок залежностей в кінцевому підсумку з’являються для вас. У найкращому випадку у вас їх не буде, і ви просто зможете продовжувати працювати зі своєю системою знову, як зазвичай.

Ви також можете спробувати відновити список статусів. Введіть sudo touch / var / lib / dpkg / status, щоб створити порожній файл як кореневий користувач, а потім спробуйте sudo apt-get install long-list з терміналу. Є кілька сценаріїв, які роблять це автоматично, але це, по суті, одне і те ж, і це не передбачає небезпеки запуску потенційно застарілого сценарію на вашій машині. Зауважте, що вам потрібно пам’ятати, що у вас є в системі, щоб це працювало, і програмне забезпечення запропонує вам запам’ятати.

Ви також можете спробувати ls /var/backups/dpkg.status* і подивитися, які є, які ви можете замість цього використовувати.

Погляньте на список, який з’явиться під час запуску. Якщо ви бачите такий, який не заархівовано, спробуйте sudo cp /var/backups/dpkg.status.0 / var / lib / dpkg / status і перевірте, чи це виправляє ситуацію. Ви завжди можете скопіювати один з інших і запустити на ньому команду gunzip, щоб розпакувати його. Однак майте на увазі, що чим далі назад, тим вище ризик оновлення застарілого файлу, що призведе до порушень залежностей