- Неразрешенные зависимости. Поврежденная система пакетов
- Неудовлетворенные зависимости Ubuntu
- Неудовлетворенные зависимости в Ubuntu
- 1. Обновление и исправление зависимостей
- 2. Установка зависимостей
- 3. Удаление зависимостей
- 4. Распаковать пакет
- 5. Использовать snap пакеты
- Выводы
- Как исправить ошибки зависимостей Ubuntu
- от sasza
- Что такое программная зависимость?
- Исправление ошибок зависимостей с помощью Apt
- Исправление ошибок зависимостей с помощью Synaptic
- Способы избежать ошибок зависимости в Ubuntu
Неразрешенные зависимости. Поврежденная система пакетов
Здравствуйте. Только начинаю осваивать, не могу разобраться вот с этим. Прошу помощи.
следующие пакеты имеют неудовлетворенные зависимости: linux-headers-3.13.0.67-generic: Depends:linux-headers-3.13.0.67 но он не установлен
Я не понял, в чем вопрос. Тебе же все написано, причем по-русски.
Почему у него пакет зависит от самого себя и для самого себя не смог разрешить зависимости? Лол.
Не сам от себя, читай вывод внимательнее.
Понял. Моя невнимательность.
Ну, тогда пусть установит linux-headers-3.13.0.67, а потом linux-headers-3.13.0.67-generic.
Тогда уж apt-get install -f , чтобы попытаться починить зависимости.
apt-get install -f пробовала, ничего не дает. При запуске в терминале имеем:
запускаю, потом терминал моргает и закрывается. Всё
Ядром слишком старое, это не ubuntu 16.04 и не debian9. Напиши название и версию дистрибутива. Попытайся удалить linux-headers-3.13.0.67-generic sudo apt-get remove linux-headers-3.13.0.67-generic , он нужен только при сборки модулей ядра, например при установки проприетарных дров от nvidia. Может у тебя в системе эта версия даже не используется, uname -r покажет версию ядра загруженной системы.
Не 16.04. Стояла по ряду причин старая 14.04.LTS Сейчас обновиться не дает, вот пыталась разобраться.
Версия ядра 3.13.0.66-generic При попытке удаления выходит:
$ sudo apt-get remove linux-headers-3.13.0.67-generic [sudo] password for poison: E: Работа dpkg прервана, вы должны вручную запустить «sudo dpkg —configure -a» для устранения проблемы. poison@poison:
$ sudo dpkg —configure -a dpkg: ошибка: не удалось создать новый файл «/var/lib/dpkg/status-new»: На устройстве кончилось место
Думаю тут все понятно. Для ясности скинь текущее положение дел на диске:
Источник
Неудовлетворенные зависимости Ubuntu
При установке пакетов из официальных или сторонних репозиториев вы можете столкнуться с проблемой неудовлетворенные зависимости Ubuntu. Чтобы понять причину возникновения этой ошибки сначала надо разобраться как работают пакетные менеджеры в Linux. Здесь всё компоненты системы, библиотеки и сами программы разделены на пакеты. И если какой-либо программе нужна определенная библиотека, она не поставляется вместе с этой библиотекой, а ожидает, что эта библиотека будет уже установлена в системе.
Установкой библиотек и других компонентов занимается пакетный менеджер, отсюда у каждой программы есть ряд зависимостей которые должны быть удовлетворены чтобы программа смогла заработать.
Неудовлетворенные зависимости в Ubuntu
По английски наша ошибка ещё может писаться как the following packages have unmet dependencies. Она может возникнуть в нескольких случаях, давайте сначала рассмотрим основные из них:
- Вы используете dpkg для установки deb пакета. Эта утилита не занимается установкой зависимостей. Вместо неё надо использовать apt install или потом просто установить недостающие зависимости с помощью apt, как это делается описано ниже;
- Вы используете старую версию дистрибутива — в старых версиях могло что-то изменится в репозитории и часть пакетов была удалена или переименована. С LTS версиями такое случается редко, но с обычными релизами вполне может произойти;
- Вы пытаетесь установить программу не от своего дистрибутива — несмотря на родство всех дистрибутивов семейства Debian, не желательно использовать программы из других дистрибутивов, так, как они могут требовать пакеты, которые в этом дистрибутиве называются по другому;
- У вас установлен устаревший пакет, который не позволяет обновить некоторые зависимости — случается, когда в системе уже есть какой-нибудь пакет старый пакет, требующий старую версию библиотеки, а новая программа, которую вы собираетесь установить уже хочет более новую версию и не позволяет её обновить. Эта проблема не очень типична для Ubuntu, так как здесь большинство версий программ в репозиториях заморожено, но часто встречается при использовании дистрибутивов с системой роллинг релизов.
1. Обновление и исправление зависимостей
Самое первое что надо сделать при проблемах с зависимостями, это хоть как-нибудь их исправить, потому что иначе пакетный менеджер работать не будет. В некоторых случаях, если списки репозиториев давно не обновлялись их обновление может помочь:
sudo apt update
sudo apt install -f
Эта команда установит зависимости, которые есть во официальных репозиториях (поможет при использовании dpkg) и если это не решит проблему, то удалит пакеты, для которых зависимости удовлетворить не удалось. Также после этого можно выполнить:
sudo dpkg —configure -a
А потом повторить предыдущую команду. Следующим шагом можно попробовать обновить систему до самой последней версии. Это тоже может помочь если вы пытаетесь установить пакет из официальных репозиториев и при этом возникает проблема с зависимостями:
sudo apt upgrade
sudo apt full-upgrade
Если причиной вашей проблемы стал устаревший пакет надо его удалить или придумать для него замену. Например, если у вас установлена старая версия php, могут возникнуть проблемы с установкой новой версии, потому что будут конфликтовать версии библиотек, от которых зависит программа. Однако можно найти PPA со специально подготовленной старой версией php, которая ни с кем конфликтовать не будет.
Также подобная проблема может возникать при использовании PPA. Эти репозитории поддерживаются сторонними разработчиками, и могут содержать проблемы, если это ваш вариант, то, лучше поискать альтернативные способы установки необходимой программы.
2. Установка зависимостей
Дальше установка зависимостей Ubuntu. Следующий этап, если вы скачали пакет в интернете, например, от другого дистрибутива с таким же пакетным менеджером, можно попытаться установить таким же способом библиотеки, которые он просит. Это может сработать особенно, если вы пытаетесь установить программу из старой версии дистрибутива. Пакеты можно искать прямо в google или на сайте pkgs.org:
Здесь собрано огромное количество пакетов от различных дистрибутивов, в том числе и от Ubuntu и Debian. Просто выберите нужную версию пакета для вашей архитектуры. Скачать файл можно чуть ниже на странице пакета:
После загрузки пакета с сайта его можно установить через тот же dpkg:
sudo dpkg -i ffmpegthumbs_19.04.3-0ubuntu1
После этого можно снова попробовать установить свой пакет. Но устанавливаемая библиотека может потребовать свои неудовлетворенные зависимости, а та ещё свои, поэтому тянуть программы из других дистрибутивов таким образом не рационально.
3. Удаление зависимостей
Если у вас есть скачанный пакет, и он говорит, что он зависит о версии библиотеки, которой в вашей системе нет, но вы уверены, что ему подойдет и другая версия, то можно просто убрать эту зависимость из пакета. Но для этого надо его перепаковать. Такая ситуация была когда-то с популярным менеджером Viber. Рассмотрим на примере того же вайбера.
Сначала распакуйте пакет в подпапку package командой:
dpkg-deb -x ./viber.deb package
Затем туда же извлеките метаданные пакета:
dpkg-deb —control viber.deb package/DEBIAN
В файле package/DEBIAN есть строчка Depends, где перечислены все библиотеки, от которых зависит пакет и их версии. Просто удалите проблемную библиотеку или измените её версию на ту, которая есть в системе.
Затем останется только собрать пакет обратно:
dpkg -b viber package.deb
И можете устанавливать, теперь с зависимостями будет всё верно:
sudo dpkg -i package.deb
Но такое исправление зависимостей Ubuntu следует использовать только для пакетов, которые точно неверно собраны. Важно понимать, что пакетный менеджер вам не враг, а помощник, и то что вы отключите зависимости и установите программу ещё не значит, что она потом будет работать.
4. Распаковать пакет
Следующий способ подойдет, если программа которую вы устанавливаете это библиотека, например, веб-драйвер для Selenium. Пакет можно распаковать и просто разложить исполняемые файлы из него по файловой системе в соответствии с папками внутри архива. Только желательно использовать не корневую файловую систему, а каталог /usr/local/ он как раз создан для этих целей.
5. Использовать snap пакеты
Самый простой способ обойти проблемы с зависимостями — использовать новый формат установщика программ, в котором программа содержит все зависимости в установочном архиве и они устанавливаются аналогично Windows в одну папку. Установка такой программы будет дольше, но зато такие там вы точно не получите проблем с зависимостями Ubuntu. Всё программы, которые поддерживают этот формат есть в центре приложений Ubuntu:
Выводы
В этой статье мы разобрали как исправить проблемы с зависимостями Ubuntu. Некоторые из способов довольно сложные, а другие проще. Но сама эта система, согласно которого пакеты зависят от других, а те ещё от других очень сложная и не удивительно, что время от времени в ней возникают ошибки. А какие способы решения этой проблемы вы знаете? Напишите в комментариях?
Источник
Как исправить ошибки зависимостей Ubuntu
от sasza
Ошибки зависимости в Ubuntu возникают, когда пользователи устанавливают сторонний пакет DEB, который они загрузили из Интернета через командную строку, и диспетчер пакетов не может найти правильные зависимые пакеты, необходимые для запуска программы в Ubuntu. Хотя такого рода проблемы возникают все реже и реже в 2019 году, из-за того, что большинство поклонников Ubuntu отходят от DEB в пользу Snaps и Flatpaks, по-прежнему важно знать, что делать, когда возникает подобная ошибка. Итак, в этом руководстве мы покажем вам, как исправить ошибки зависимости в Ubuntu.
Примечание: хотя это руководство посвящено устранению проблем с зависимостями в Ubuntu Linux, информация, которую мы рассматриваем, также применима к Linux Mint, Elementary OS, Zorin OS и любой другой операционной системе, подобной Ubuntu. Если вы используете какой-либо из этих дистрибутивов на основе Ubuntu, не стесняйтесь следить за ним.
Что такое программная зависимость?
Зависимость программного обеспечения — это общий термин, используемый в Linux для обозначения необходимых программ, библиотек, кодеков и других элементов, которые требуются данному приложению для правильной работы. Обычно разработчик обрабатывает эти важные файлы, объединяя их в пакет. Однако иногда разработчики не объединяют зависимости программного обеспечения, а вместо этого полагаются на источники программного обеспечения Ubuntu, чтобы предоставить это им.
Исправление ошибок зависимостей с помощью Apt
Самый простой способ исправить ошибки зависимости в Ubuntu Linux — использовать менеджер пакетов по умолчанию: Apt. Чтобы начать исправление, откройте окно терминала, нажав Ctrl + Alt + T или Ctrl + Shift + T на клавиатуре. После открытия окна командной строки используйте команду ниже, чтобы исправить ошибки.
После выполнения указанной выше команды установки диспетчер пакетов Ubuntu попытается исправить проблемы с зависимостями, с которыми вы столкнулись, и распечатает изменения, которые он собирается внести. Прочтите подсказку на экране, которую распечатывает терминал. Затем, когда вы закончите читать экранную подсказку, нажмите Y на клавиатуре, чтобы продолжить.
Позвольте инструменту упаковки Apt установить различные зависимости программного обеспечения, необходимые для настройки вашей программы. В качестве альтернативы, если Apt не может найти какие-либо недостающие программные зависимости, необходимые для работы, он автоматически удалит приложение. В этом случае попробуйте найти приложение другими способами, а не пакетом DEB.
Исправление ошибок зависимостей с помощью Synaptic
Устранение ошибок зависимостей с помощью Apt и командной строки обычно работает довольно хорошо. Тем не менее, если вы не являетесь поклонником этого метода, есть другой способ: диспетчер пакетов Synaptic.
Чтобы получить доступ к диспетчеру пакетов Synaptic в Ubuntu для решения ошибок зависимостей, вам необходимо установить приложение. Откройте окно терминала с помощью Ctrl + Alt + T или Ctrl + Shift + T. Затем используйте команду ниже, чтобы установить приложение в вашей системе.
Примечание. Synaptic также можно установить, выполнив поиск в Центре программного обеспечения Ubuntu по запросу «Synaptic».
После установки диспетчера пакетов Synaptic в Ubuntu запустите приложение и введите пароль пользователя, чтобы получить доступ к приложению. Затем следуйте пошаговым инструкциям ниже, чтобы узнать, как с его помощью решать ошибки зависимостей.
Шаг 1. Найдите в диспетчере пакетов Synaptic кнопку «Поиск» и выберите ее, чтобы получить доступ к функции поиска в приложении.
Шаг 2. Введите имя приложения со сломанными зависимостями в поле поиска. Например, если вы установили пакет Discord DEB, вы должны написать «discord» в поле поиска.
Шаг 3. Просмотрите результаты поиска в Synaptic для приложения с отсутствующими файлами зависимостей и выберите его с помощью мыши.
Шаг 4: Найдите меню «Правка» в окне диспетчера пакетов Synaptic и щелкните его, чтобы открыть параметры внутри. После открытия меню нажмите кнопку «Исправить поврежденные пакеты».
Шаг 5: Найдите кнопку «Применить» и выберите ее, чтобы сообщить Synaptic о необходимости продолжить процесс разрешения зависимостей.
Функция исправления выйдет и соберет все недостающие программные зависимости, необходимые программе. Когда процесс завершен, ваши ошибки устранены, и приложение готово к использованию!
Способы избежать ошибок зависимости в Ubuntu
Ошибок зависимости в Ubuntu можно легко избежать, следуя этому простому правилу: устанавливайте программное обеспечение только из официальных источников программного обеспечения Ubuntu. Не поддавайтесь искушению загружать случайные пакеты DEB, если они вам не нужны. Ubuntu имеет огромное количество бесплатного программного обеспечения с открытым исходным кодом и проприетарного программного обеспечения. Не должно быть никаких причин для загрузки пакетов DEB из Интернета (тем более, что многие из них имеют проблемные проблемы с зависимостями).
Иногда необходимо получить программное обеспечение не из источников программного обеспечения Ubuntu. Даже с огромным количеством приложений Ubuntu, которые нужно установить, некоторые ускользают от проблем. Если вам нужно заполучить приложение, которого нет в традиционных источниках программного обеспечения Ubuntu, подумайте о поиске версии Snap или Flatpak, поскольку у них никогда не возникает проблем с зависимостями, и регулярно получайте обновления непосредственно от разработчиков.
Источник