Пакети Linux – це файли, що містять програмний код, який можна встановити. Вони мають всі необхідні файли та інструкції, щоб програмне забезпечення функціонувало належним чином. Коли пакет ламається, це означає, що щось пішло не так з його інсталяцією чи конфігурацією, і він більше не функціонує чи не оновлюється.
Крім того, можуть виникнути проблеми із залежностями, коли пакет покладається на інші пакети (залежності) для належного функціонування. Якщо залежність відсутня або пошкоджена, це може зробити основний пакет непридатним для використання.
Проблеми зі сховищем також можуть призвести до зламаних пакунків. Репозиторії – це набори програмних пакетів. Якщо вони неправильно налаштовані або містять несправні пакети, це може спричинити проблеми з пакетами, встановленими із них.
Як виправити зламані пакети в Linux
Процес виправлення зламаних пакетів залежить від дистрибутива Linux, який ви використовуєте. How to Geek пропонує методи для Ubuntu/Debian, Fedora/CentOS/RHEL і Arch Linux.
Зазвичай рекомендується спочатку спробувати виправити зламаний пакет. Проте, якщо пакет більше не потрібний і ви впевнені, що він не викликає конфліктів, то можна видалити його за допомогою відповідної команди менеджера пакетів.
Оновлення зламаних пакетів на Ubuntu та Debian
Якщо ви користувач Ubuntu/Debian, то можете виправити пошкоджені пакунки за допомогою APT або команди dpkg. Почнемо з оновлення пакетів за допомогою APT.
APT є менеджером пакетів за замовчуванням в Ubuntu, Debian і пов’язаних дистрибутивах. Ви можете використовувати його для встановлення, оновлення та видалення пакетів.
Виконайте таку команду, щоб оновити індекс пакетів, виправляючи пошкоджені пакети:
sudo apt update --fix-missing
Використовуйте опцію -f або --fix-broken, щоб визначити та виправити зламані пакети, перевстановивши їх з офіційних репозиторіїв.
sudo apt install -f
Після встановлення зламаних пакетів оновіть свій список пакетів, виконавши таку дію:
sudo apt update
Якщо результат не містить жодних помилок, ви виправили пошкоджені пакети.
Також можна використовувати команду dpkg для виявлення та виправлення зламаних пакетів. Щоб переналаштувати будь-які частково встановлені пакунки за допомогою dpkg, використовуйте:
sudo dpkg --configure -a
Тут параметр --configure наказує dpkg налаштувати пакет. Коли інсталяція пакета не вдається, він може залишити пакет у неналаштованому стані. Ця опція допомагає вирішити такі проблеми.
Крім того, параметр -a позначає всі та використовується для вибору всіх пакетів, які перебувають у неналаштованому стані, а не для визначення окремого пакета.
Давайте передамо grep із dpkg, щоб побачити список зламаних пакетів, які потрібно перевстановити:
sudo dpkg -l | grep ^..r
Отримавши список несправних програм, ви можете видалити їх одну за одною за допомогою такої команди:
sudo dpkg --purge <package_name>
Тут параметр --purge повідомляє dpkg повністю видалити пакунок, включно з його конфігураційними файлами. Після видалення всіх зламаних пакетів вам потрібно очистити кеш пакетів за допомогою:
sudo apt clean
Нарешті, щоб оновити список пакетів, виконайте:
sudo apt update
Якщо у виведених даних немає помилок, то ви успішно виправили всі зламані пакети.
Іноді під час виправлення пошкоджених пакетів можна отримати помилку блокування dpkg, якщо ви намагаєтеся встановити пакет, але система вважає, що інша інсталяція вже відбувається. Іноді ж dpkg з’являється, навіть якщо інші інсталяції не відбуваються.
Щоб виправити це, ви можете дочекатися завершення будь-якої поточної інсталяції, перевірити наявність автоматичних оновлень або, якщо потрібно, обережно видалити файл блокування самостійно. Щоб видалити файл блокування, виконайте цю команду:
sudo rm /var/lib/apt/lists/lock
Також можна зняти блокування кешу за допомогою цього:
sudo rm /var/cache/apt/archives/lock
Видаливши файли блокування, ви знову зможете без проблем використовувати команди керування пакетами.
Перевстановлення пошкоджених пакетів на Fedora та RHEL
YUM і DNF корисні для обробки зламаних пакетів, але проблеми все одно можуть виникати, оскільки в системі Linux є велика кількість пакетів. Однак ви можете виправити проблеми зі зламаним пакетом у Fedora, CentOS і RHEL за допомогою менеджера пакетів RPM.
Щоб виявити потенційні проблеми, перевірте всі пакунки у вашій системі за допомогою прапорця -V:
sudo rpm -Va
Ця команда перевіряє метадані пакетів, що зберігаються в базі даних RPM, щоб виявити проблеми із вашими пакетами.
Ви також можете вирішити проблеми зі зламаним пакетом, оновивши встановлені пакети до останньої доступної версії.
sudo dnf upgrade -b
Параметр -b змушує DNF розглядати лише останню версію пакетів.
Знайти зламаний пакунок серед багатьох нелегко. Однак, як тільки ви визначили певний зламаний пакет, то можете повторно встановити його за допомогою цієї команди dnf:
sudo dnf --refresh reinstall <package_name>
Обов’язково замініть <package_name> справжньою назвою зламаного пакета.
Якщо ви використовуєте YUM і стикаєтеся з помилкою зламаного пакета, спробуйте перевстановити всі пакунки.
sudo yum reinstall \*
Якщо перевстановлення всіх пакетів не вирішить вашу проблему, можна спробувати пропустити зламані пакети.
sudo yum update --skip-broken
Якщо проблему не вирішено після виконання всіх наведених вище кроків, можливо, вам потрібно буде видалити зламаний пакет і його залежності:
sudo dnf remove packagename
Виправлення зламаних пакетів на Arch Linux
В Arch Linux ви можете легко виявити та виправити зламані пакети за допомогою Pacman. Pacman має прапорець -Qk для перевірки системи на наявність проблем із пакетами. Ви можете отримати список усіх встановлених пакетів у вашій системі за допомогою команди:
sudo pacman -Qk
Цей список можна використовувати для перевірки встановленого програмного забезпечення, виявлення застарілих пакетів і відстеження конфігурації вашої системи. Однак, щоб отримати список усіх пакетів із відсутніми файлами, необхідно запустити:
sudo pacman -Qk 2>/dev/null | grep -v ' 0 missing files'
Отримавши список зламаних пакунків, ви можете повторно встановити їх. Зробити це можна окремо за допомогою команди:
sudo pacman -S --force <package-name>
Ви можете використовувати опцію --force, щоб перезаписати наявні пакунки. Pacman оновить список пакетів і перевстановить вказаний пакет, усунувши будь-які пошкоджені залежності.
Також можна виправити зламані пакунки, оновивши список пакунків вашої системи.
sudo pacman -Syu
Виправлення зламаних пакетів не повинно зашкодити стабільності вашої системи, але перед внесенням будь-яких змін завжди варто створити резервну копію системи.
Щоб уникнути пошкоджень пакунків, просто оновлюйте їх список, будьте обережні, встановлюючи або видаляючи пакунки, і використовуйте функції безпеки менеджера пакетів.
Читайте також на ProIT лайфхаки, як переконатися, що користувачі періодично оновлюють свої паролі в Linux.
Підписуйтеся на ProIT у Telegram, щоб не пропустити жодної публікації!