Как исправить ошибки зависимости в 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 (packages.ubuntu.com) чтобы проверить, какая это версия Ubuntu и в каком репозитории, поскольку очень часто некоторые из них не включены.

Здесь вы можете скачать и установить нужные вам пакеты.

В качестве рекомендации, если при установке определенной версии библиотеки, которая запрашивается, указывает, что от нее зависит больше пакетов, лучше отказаться, так как вы можете испортить свою графическую среду или в конечном итоге разрушить свою систему. 

Третий и последний вариант. При распаковке необходимо изменить зависимости и переупаковку.

Последний вариант по идее лучший вариант, поскольку обычно разработчики обычно указывают, что приложение работает с определенной версией выпуска, но они не принимают во внимание, что указанная библиотека может быть обновлена ​​в течение нескольких дней или в тот момент, когда они выпускают свое приложение.

Итак, если они ограничивают работу приложения под определенной версией, Это тот, который вызывает конфликт.

Итак мы собираемся распаковать пакет deb и изменить зависимости к той версии, которая у нас есть в системе (поэтому было важно отметить, какие зависимости конфликтуют с конкретной версией).

Для этого мы наберем команду:

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

Например:

dpkg-deb -R gimp.deb Gimp

Мы собираемся получить доступ к папке и идем по маршруту "/ ДЕБИАН"

cd Gimp/DEBIAN

И мы собираемся редактировать файл "control" с нашим любимым редактором

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. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.

  1.   Дэниел сказал

    Очень интересно о пакете deb. Я его не знал. Привет.

  2.   Фернандо Баутиста сказал

    Какая проблема со сломанными зависимостями, по этой причине я отмечаю реализацию таких пакетов, как Snap и Flatpak (я выбираю первый), чтобы увидеть, начнем ли мы наконец стандартизировать и укрепить позиции на рабочем столе.

  3.   Марио Анайя сказал

    Я страдаю от этого в эти дни, и я пробовал следовать этим процедурам, но мало чего добился.
    Я вовсе не говорю, что то, что читают, неправильно.
    Это больше из-за незнания того, кто пишет в использовании linux, пользуюсь сравнительно недолго и у меня только форматирование и переустановка системы на все ответы.
    Это как пытаться читать по-китайски. это почти облагается налогом для меня

    1.    Дэвид наранхо сказал

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

      Другой случай может быть, если вы примените инструкцию –force и примените более позднее подходящее обновление или обновление и измените некоторые библиотеки.
      С другой стороны, также, когда пакеты конфликтуют со средами рабочего стола, в которых вы установили две или более среды, в которых их зависимости обычно одинаковы, и вы удалили любую из них, не дав инструкции сохранить зависимости.
      Таких случаев много, но если вы захотите поделиться своей проблемой, мы сможем найти решение.
      Привет.

  4.   Алехандро Мендоса сказал

    Здравствуйте, у меня проблемы с битыми пакетами, первый вариант ничего не решает, второй вариант при поиске пакетов не отображаются ни пакеты, ни библиотеки для их установки вручную и так как я использую программу для обновления в Ubuntu 18.04, понятия не имею, откуда падает .deb для обновлений, если я сделаю случай 3, какое-либо решение? пожалуйста спасибо!!!

  5.   Оскар Антонио Гарсия сказал

    У меня проблема с zorin, при установке некоторых кодеков выдает ошибку, в терминале выдает строку ошибки:
    /var/lib/dpkg/lock-интерфейс

    Как я могу это решить, так как я новичок в этом