Как да коригирам грешки в зависимостта в Ubuntu и деривати?

A от най-често срещаните проблеми, които обикновено се появяват в 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

И ние ще редактираме файла "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.   Daniel каза той

    Много интересно за пакета deb. не го познаваше. Поздравления.

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

    Какъв проблем с счупените зависимости, поради тази причина празнувам внедряването на пакети като Snap и Flatpak (избирам първия), за да видим дали най-накрая започваме да се стандартизираме и да набираме място на работния плот.

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

    В днешно време страдам от него и се опитах да следвам тези процедури, но не постигнах много.
    Далеч от това, че четеното е погрешно.
    Това се дължи повече на невежеството на този, който пише, използвайки linux, аз го използвам от сравнително кратко време и единственият изход е форматирането и преинсталирането на системата за всички отговори.
    Все едно да се опитваш да четеш китайски. за мен е почти облагаема

    1.    Дейвид Наранджо каза той

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

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

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

    Здравейте, имам проблеми със счупени пакети, първата опция не решава нищо, втората опция при търсене на пакети не се появява нито пакетите, нито библиотеките, за да ги инсталирам на ръка и тъй като използвам програмата за актуализация в Ubuntu 18.04, нямам представа откъде идва .deb за актуализации, в случай че видя да направя случай 3, някакво решение? моля благодаря !!!

  5.   оскар антонио гарсия каза той

    Имам проблем със zorin, инсталирам някои кодеци, получавам грешка, в терминала получавам низа за грешка:
    /var/lib/dpkg/lock-frontend

    Как мога да го реша, след като съм нов в това