Як виправити помилки залежностей в Ubuntu та похідних?

Uno найпоширеніших проблем, які зазвичай трапляються в Ubuntu або будь-якого з його похідних коли користувач встановлює пакунки deb, які він завантажує з якогось веб-сайту, Це відома проблема з невиконаними залежностями. Це генерується, оскільки для зазначеного пакету потрібна конкретна версія програми, або вона випуститься, і вона відсутня в системі, або що менеджер пакетів не може знайти правильні залежні пакети, необхідні для запуску програми в Ubuntu.

Хоча подібних проблем виникає все менше, Через те, що багато користувачів вже віддають перевагу використанню програм Flatpak, AppImage або Snap, крім того, що вони вже мають пристойний каталог з найпопулярнішими програмами, і більше розробників продовжують додавати свої програми у цьому типі формат.

Визначення проблеми

Першим кроком для вирішення цієї настирливої ​​помилки є виявлення проблеми, оскільки загалом, це зазвичай стрибає, коли ми намагаємось встановити пакет або додаток із пакета deb або навіть сховища.

Ця помилка вказується нам з терміналу, який повідомляє нам, що певні залежності не можуть бути виконані або у випадку встановлення через програмний центр Ubuntu він просто не встановлює програму.

Тут важливо перевірити, чи не намагаємось ми встановити застарілий пакет Ну, можливо, існує більш актуальний пакет або перевірте сховище, з якої дати датують пакети і до якої версії доступна.

Якщо конфліктний пакет уже встановлений, під час спроби запустити команду:

sudo apt update

o

sudo apt upgrade

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

Застосування першого розчину

Найбільш прямий спосіб виправлення помилок Залежність в Ubuntu полягає у менеджері пакунків за замовчуванням, для запуску виправлення просто відкрийте термінал і запустіть команду:

sudo apt install -f

Виконуючи вищевказану команду, Менеджер пакетів Ubuntu спробує виправити проблеми залежність, що стикається і він надрукує внесені вами зміни. 

Тут важливо враховувати зміни, які ви друкуєте оскільки, якщо він не вирішить конфлікт із залежностями, він видалить конфліктуючий пакет або пакети та повідомить нам, які залежності є тими, що конфліктують з пакетом.

Таким же чином ви можете вибрати інше рішення:

Завантажуйте пакети deb локально
Пов'язана стаття:
Як завантажити пакети DEB із залежностями локально?

Друге рішення - встановлення необхідних залежностей

Беручи до уваги попередній крок, де ми записуємо пакети або бібліотеки, необхідні для вирішення помилок залежності, тут ми збираємось встановлювати пакети по одному з терміналу, або ми можемо допомогти собі Synaptic

Наприклад, в терміналі нам показують щось подібне:

"Error: Dependency is not satisfiable: libgtk-3-0 (>=3.16.2)"

Слід зазначити це Це повідомляє нам, що випуск "libgtk 3.0" більше або дорівнює версії "3.16.2" за те, що ми винніs в цьому випадку завантажте версію згаданої бібліотеки. Тут важливо врахувати, що для бібліотек багато програм залежать від однієї чи певної версії, тому я особисто не раджу вам прикладати сюди руку.

Щоб знайти конкретну версію, на яку можна покластися сторінку пакетів ubuntu (пакети.ubuntu.com) щоб перевірити, на якій версії Ubuntu це і в якому сховищі, оскільки дуже часто не включати деякі.

Тут ви можете завантажити та встановити відповідні пакунки, які вам потрібні.

Як рекомендація, якщо при встановленні певної версії бібліотеки, яка вимагається, вказується, що від неї залежить більше пакетів, краще відмовитися, оскільки ви можете зіпсувати графічне середовище або в кінцевому підсумку зруйнувати вашу систему. 

Третій і останній варіант. Розпакування має змінити залежності та перепакувати.

Цей останній варіант є в теорії найкращий варіант, оскільки зазвичай розробники зазвичай вказують, що додаток працює за певною версією випуску, але вони не беруть до уваги, що зазначена бібліотека може бути оновлена ​​за лічені дні або в той момент, коли вони випускають свою програму.

Отже, якщо вони обмежують роботу програми в певній версії, Це той, що викликає конфлікт.

Отже, ми збираємося розпакувати пакет deb і змінимо залежності до тієї версії, яку ми маємо в системі (саме тому важливо було зазначити, які залежності конфліктують та конкретна версія).

Для цього ми наберемо команду:

dpkg-deb -R “ruta-de-paquete-deb” “nombre-de-carpeta-que-tendra-los -archivos”

Наприклад:

dpkg-deb -R gimp.deb Gimp

Ми збираємось отримати доступ до папки і ми переходимо до наступного маршруту "/ DEBIAN"

cd Gimp/DEBIAN

І ми збираємося редагувати файл "контроль" з нашим улюбленим редактором

sudo gedit control

тут ми збираємось знайти рядки, які вказують на залежності з якими у нас конфлікти, і ми збираємось їх редагувати.

Наприклад, ми знайдемо щось подібне:

Package: XXXX

Version: XXXX

Depends: libgtk3-0 (>= 3.16.xx"

Ми збираємось перейти на ту версію, яку ми маємо. Ми зберігаємо зміни та переупаковуємо для перевстановлення за допомогою:

dpkg-deb -b Gimp Gimp-new.deb

І створюється новий пакет deb для встановлення.


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

  1. Відповідальний за дані: Мігель Анхель Гатон
  2. Призначення даних: Контроль спаму, управління коментарями.
  3. Легітимація: Ваша згода
  4. Передача даних: Дані не передаватимуться третім особам, за винятком юридичних зобов’язань.
  5. Зберігання даних: База даних, розміщена в мережі Occentus Networks (ЄС)
  6. Права: Ви можете будь-коли обмежити, відновити та видалити свою інформацію.

      Данило - сказав він

    Дуже цікаво про пакет deb. не знав його. Привітання.

      Фернандо Баутіста - сказав він

    Яка проблема з непрацюючими залежностями, з цієї причини я відзначаю реалізацію таких пакетів, як Snap та Flatpak (я вибираю перший), щоб побачити, чи нарешті ми почнемо стандартизуватись і закріпитись на робочому столі.

      Маріо Аная - сказав він

    Я страждаю від цього в наші дні, і я намагався виконувати ці процедури, але мало чого досяг.
    Далеко не кажучи про те, що прочитане є неправильним.
    Це більше через незнання того, хто пише у використанні linux, я користуюся ним відносно короткий час і маю лише форматування та перевстановлення системи для всіх відповідей.
    Це все одно, що намагатися читати китайську. це майже оподатковується для мене

         Девід Наранджо - сказав він

      Проблеми із залежностями можуть мати багато факторів, і значною мірою це трапляється, як обговорювалося в статті, коли ми намагаємось встановити пакет, який може бути застарілим або іншим чином сумісний з іншою версією Ubuntu або спеціально створений для одного. (зазвичай для Debian).

      Інший випадок може бути, коли ви застосуєте інструкцію –force і застосуєте пізніше відповідне оновлення або оновлення та зміну деяких бібліотек.
      З іншого боку, також коли пакети конфліктують із середовищами робочого столу, де ви встановили два або більше середовищ, де їх залежності, як правило, однакові, і ви видалили будь-яке з них, не даючи вказівки зберігати залежності.
      Випадків багато, але якщо ви хочете поділитися своєю проблемою, ми можемо знайти рішення.
      Привіт.

      Алежандро Мендоза - сказав він

    Привіт, у мене проблеми з непрацюючими пакетами, перший варіант нічого не вирішує для мене, другий варіант при пошуку в пошуку пакетів не з’являється ні в пакетах, ні в бібліотеках для їх встановлення вручну, і оскільки я використовую програму для оновлення в Ubuntu 18.04 Я не уявляю, звідки паде .deb для оновлень на випадок, якщо я буду робити 3, будь-яке рішення? будь ласка спасибі !!!

      Оскар Антоніо Гарсія - сказав він

    У мене проблема з zorin, встановлення деяких кодеків, виходить помилка, в терміналі виходить рядок помилки:
    /var/lib/dpkg/lock-frontend

    Як я можу це вирішити, оскільки я новачок у цьому