Ubuntu как исправить зависимости

При установке пакетов из официальных или сторонних репозиториев вы можете столкнуться с проблемой неудовлетворенные зависимости Ubuntu. Чтобы понять

При установке пакетов из официальных или сторонних репозиториев вы можете столкнуться с проблемой неудовлетворенные зависимости Ubuntu. Чтобы понять причину возникновения этой ошибки сначала надо разобраться как работают пакетные менеджеры в Linux. Здесь всё компоненты системы, библиотеки и сами программы разделены на пакеты. И если какой-либо программе нужна определенная библиотека, она не поставляется вместе с этой библиотекой, а ожидает, что эта библиотека будет уже установлена в системе.

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

По английски наша ошибка ещё может писаться как 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~ubuntu19.04~ppa1_amd64.deb

После этого можно снова попробовать установить свой пакет. Но устанавливаемая библиотека может потребовать свои неудовлетворенные зависимости, а та ещё свои, поэтому тянуть программы из других дистрибутивов таким образом не рационально.

3. Удаление зависимостей

Если у вас есть скачанный пакет, и он говорит, что он зависит о версии библиотеки, которой в вашей системе нет, но вы уверены, что ему подойдет и другая версия, то можно просто убрать эту зависимость из пакета. Но для этого надо его перепаковать. Такая ситуация была когда-то с популярным менеджером Viber. Рассмотрим на примере того же вайбера.

Сначала распакуйте пакет в подпапку package командой:

dpkg-deb -x ./viber.deb package

Затем туда же извлеките метаданные пакета:

dpkg-deb --control viber.deb package/DEBIAN

В файле package/DEBIAN есть строчка Depends, где перечислены все библиотеки, от которых зависит пакет и их версии. Просто удалите проблемную библиотеку или измените её версию на ту, которая есть в системе.

vi package/DEBIAN

Затем останется только собрать пакет обратно:

dpkg -b viber package.deb

И можете устанавливать, теперь с зависимостями будет всё верно:

sudo dpkg -i package.deb

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

4. Распаковать пакет

Следующий способ подойдет, если программа которую вы устанавливаете это библиотека, например, веб-драйвер для Selenium. Пакет можно распаковать и просто разложить исполняемые файлы из него по файловой системе в соответствии с папками внутри архива. Только желательно использовать не корневую файловую систему, а каталог /usr/local/ он как раз создан для этих целей.

5. Использовать snap пакеты

Самый простой способ обойти проблемы с зависимостями — использовать новый формат установщика программ, в котором программа содержит все зависимости в установочном архиве и они устанавливаются аналогично Windows в одну папку. Установка такой программы будет дольше, но зато такие там вы точно не получите проблем с зависимостями Ubuntu. Всё программы, которые поддерживают этот формат есть в центре приложений Ubuntu:

Выводы

В этой статье мы разобрали как исправить проблемы с зависимостями Ubuntu. Некоторые из способов довольно сложные, а другие проще. Но сама эта система, согласно которого пакеты зависят от других, а те ещё от других очень сложная и не удивительно, что время от времени в ней возникают ошибки. А какие способы решения этой проблемы вы знаете? Напишите в комментариях?

Creative Commons License

Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .

Ошибки зависимости в 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 на клавиатуре. После открытия окна командной строки используйте команду ниже, чтобы исправить ошибки.

sudo apt install -f

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

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

Исправление ошибок зависимостей с помощью Synaptic

Устранение ошибок зависимостей с помощью Apt и командной строки обычно работает довольно хорошо. Тем не менее, если вы не являетесь поклонником этого метода, есть другой способ: диспетчер пакетов Synaptic.

Чтобы получить доступ к диспетчеру пакетов Synaptic в Ubuntu для решения ошибок зависимостей, вам необходимо установить приложение. Откройте окно терминала с помощью Ctrl + Alt + T или Ctrl + Shift + T. Затем используйте команду ниже, чтобы установить приложение в вашей системе.

Примечание. Synaptic также можно установить, выполнив поиск в Центре программного обеспечения Ubuntu по запросу «Synaptic».

sudo apt install synaptic

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

Шаг 1. Найдите в диспетчере пакетов Synaptic кнопку «Поиск» и выберите ее, чтобы получить доступ к функции поиска в приложении.

Шаг 2. Введите имя приложения со сломанными зависимостями в поле поиска. Например, если вы установили пакет Discord DEB, вы должны написать «discord» в поле поиска.

Шаг 3. Просмотрите результаты поиска в Synaptic для приложения с отсутствующими файлами зависимостей и выберите его с помощью мыши.

Шаг 4: Найдите меню «Правка» в окне диспетчера пакетов Synaptic и щелкните его, чтобы открыть параметры внутри. После открытия меню нажмите кнопку «Исправить поврежденные пакеты».

Шаг 5: Найдите кнопку «Применить» и выберите ее, чтобы сообщить Synaptic о необходимости продолжить процесс разрешения зависимостей.

Функция исправления выйдет и соберет все недостающие программные зависимости, необходимые программе. Когда процесс завершен, ваши ошибки устранены, и приложение готово к использованию!

Ошибок зависимости в Ubuntu можно легко избежать, следуя этому простому правилу: устанавливайте программное обеспечение только из официальных источников программного обеспечения Ubuntu. Не поддавайтесь искушению загружать случайные пакеты DEB, если они вам не нужны. Ubuntu имеет огромное количество бесплатного программного обеспечения с открытым исходным кодом и проприетарного программного обеспечения. Не должно быть никаких причин для загрузки пакетов DEB из Интернета (тем более, что многие из них имеют проблемные проблемы с зависимостями).

Иногда необходимо получить программное обеспечение не из источников программного обеспечения Ubuntu. Даже с огромным количеством приложений Ubuntu, которые нужно установить, некоторые ускользают от проблем. Если вам нужно заполучить приложение, которого нет в традиционных источниках программного обеспечения Ubuntu, подумайте о поиске версии Snap или Flatpak, поскольку у них никогда не возникает проблем с зависимостями, и регулярно получайте обновления непосредственно от разработчиков.

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

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

Индекс

  • 1 Выявление проблемы
    • 1.1 Применение первого решения
    • 1.2 Второе решение, установка необходимых зависимостей
  • 2 Третий и последний вариант. При распаковке необходимо изменить зависимости и переупаковку.

Выявление проблемы

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

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

Здесь важно проверить, не пытаемся ли мы установить устаревший пакет. Что ж, возможно, есть более свежий пакет или проверьте репозиторий, на какую дату датируются пакеты и до какой версии доступна.

Если конфликтующий пакет уже установлен, при попытке запустить команду:

sudo apt update

o

sudo apt upgrade

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

Применение первого решения

Самый прямой способ исправить ошибки Зависимость в Ubuntu от диспетчера пакетов по умолчанию, чтобы начать исправление, просто откройте терминал и выполните команду:

sudo apt install -f

При выполнении вышеуказанной команды Диспетчер пакетов Ubuntu попытается исправить проблемы зависимость, стоящая перед и он напечатает внесенные вами изменения. 

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

Таким же образом вы можете выбрать другое решение:

Descargar paquetes deb localmente

Теме статьи:

Как скачать пакеты 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. Неудовлетворенные зависимости Ubuntu
  2. Неудовлетворенные зависимости в Ubuntu
  3. 1. Обновление и исправление зависимостей
  4. 2. Установка зависимостей
  5. 3. Удаление зависимостей
  6. 4. Распаковать пакет
  7. 5. Использовать snap пакеты
  8. Выводы
  9. Не устанавливается g++
  10. sergunok
  11. DEVOPS
  12. countmein
  13. sergunok
  14. Как исправить «сломанные пакеты» на свежеустановленной системе?
  15. tutor
  16. banzay242
  17. Не устанавливается обновление БЮЛЛЕТЕНЬ № 20200327SE16 — Update 5
  18. clop1000
  19. extasy

Неудовлетворенные зависимости 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. Некоторые из способов довольно сложные, а другие проще. Но сама эта система, согласно которого пакеты зависят от других, а те ещё от других очень сложная и не удивительно, что время от времени в ней возникают ошибки. А какие способы решения этой проблемы вы знаете? Напишите в комментариях?

Источник

Не устанавливается g++

sergunok

New member

Пытаюсь установить g++:
sudo apt install g++

Чтение списков пакетов…
Построение дерева зависимостей…
Чтение информации о состоянии…
Некоторые пакеты невозможно установить. Возможно, вы просите невозможного,
или же используете нестабильную версию дистрибутива, где запрошенные вами
пакеты ещё не созданы или были удалены из Incoming.
Следующая информация, возможно, поможет вам:

Пакеты, имеющие неудовлетворённые зависимости:
g++ : Зависит: g++-6 (>= 6.3.0-9

) но он не будет установлен
E: Невозможно исправить ошибки, у вас отложены (held) битые пакеты.

В чем может быть проблема?

DEVOPS

New member

Пытаюсь установить g++:
sudo apt install g++

Чтение списков пакетов…
Построение дерева зависимостей…
Чтение информации о состоянии…
Некоторые пакеты невозможно установить. Возможно, вы просите невозможного,
или же используете нестабильную версию дистрибутива, где запрошенные вами
пакеты ещё не созданы или были удалены из Incoming.
Следующая информация, возможно, поможет вам:

Пакеты, имеющие неудовлетворённые зависимости:
g++ : Зависит: g++-6 (>= 6.3.0-9

) но он не будет установлен
E: Невозможно исправить ошибки, у вас отложены (held) битые пакеты.

В чем может быть проблема?

New member

countmein

New member

sergunok

New member

В том-то и дело, что я не трогал настройки репозиториев.
Сделал sudo apt update

sudo apt install g++

И вот такая-вот ошибка:
Чтение списков пакетов…
Построение дерева зависимостей…
Чтение информации о состоянии…
Некоторые пакеты невозможно установить. Возможно, вы просите невозможного,
или же используете нестабильную версию дистрибутива, где запрошенные вами
пакеты ещё не созданы или были удалены из Incoming.
Следующая информация, возможно, поможет вам:

Пакеты, имеющие неудовлетворённые зависимости:
g++ : Зависит: g++-6 (>= 6.3.0-9

) но он не будет установлен
E: Невозможно исправить ошибки, у вас отложены (held) битые пакеты.

Источник

Как исправить «сломанные пакеты» на свежеустановленной системе?

tutor

New member

apt install ./krdc_19.12.3-0ubuntu1astra1_amd64.deb
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Заметьте, вместо «./krdc_19.12.3-0ubuntu1astra1_amd64.deb» выбирается «krdc»
Некоторые пакеты не могут быть установлены. Возможно, то, что вы просите,
неосуществимо, или же вы используете нестабильную версию дистрибутива, где
запрошенные вами пакеты ещё не созданы или были удалены из Incoming.
Следующая информация, возможно, вам поможет:

Следующие пакеты имеют неудовлетворённые зависимости:
krdc : Зависит: libkf5xmlgui-bin но он не будет установлен
E: Невозможно исправить ошибки: у вас зафиксированы сломанные пакеты.

Пытаюсь установить пакет локально:
apt install ./krdc_19.12.3-0ubuntu1astra1_amd64.deb
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Заметьте, вместо «./krdc_19.12.3-0ubuntu1astra1_amd64.deb» выбирается «krdc»
Некоторые пакеты не могут быть установлены. Возможно, то, что вы просите,
неосуществимо, или же вы используете нестабильную версию дистрибутива, где
запрошенные вами пакеты ещё не созданы или были удалены из Incoming.
Следующая информация, возможно, вам поможет:

Следующие пакеты имеют неудовлетворённые зависимости:
krdc : Зависит: libkf5xmlgui-bin но он не будет установлен
E: Невозможно исправить ошибки: у вас зафиксированы сломанные пакеты.
root@astra-vsp:/home/petushkov/Загрузки# cat /etc/*release*
DISTRIB_ID=»AstraLinux»
DISTRIB_DESCRIPTION=»Astra Linux 1.7 x86-64″
DISTRIB_RELEASE=1.7_x86-64
DISTRIB_CODENAME=1.7_x86-64
PRETTY_NAME=»Astra Linux»
NAME=»Astra Linux»
ID=astra
ID_LIKE=debian
ANSI_COLOR=»1;31″
HOME_URL=»https://astralinux.ru»
SUPPORT_URL=»https://astralinux.ru/support»
LOGO=astra
VERSION_ID=1.7_x86-64
VERSION_CODENAME=1.7_x86-64
PRETTY_NAME=»Astra Linux»
NAME=»Astra Linux»
ID=astra
ID_LIKE=debian
ANSI_COLOR=»1;31″
HOME_URL=»https://astralinux.ru»
SUPPORT_URL=»https://astralinux.ru/support»
LOGO=astra
VERSION_ID=1.7_x86-64
VERSION_CODENAME=1.7_x86-64

banzay242

New member

apt install ./krdc_19.12.3-0ubuntu1astra1_amd64.deb
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Заметьте, вместо «./krdc_19.12.3-0ubuntu1astra1_amd64.deb» выбирается «krdc»
Некоторые пакеты не могут быть установлены. Возможно, то, что вы просите,
неосуществимо, или же вы используете нестабильную версию дистрибутива, где
запрошенные вами пакеты ещё не созданы или были удалены из Incoming.
Следующая информация, возможно, вам поможет:

Следующие пакеты имеют неудовлетворённые зависимости:
krdc : Зависит: libkf5xmlgui-bin но он не будет установлен
E: Невозможно исправить ошибки: у вас зафиксированы сломанные пакеты.

Пытаюсь установить пакет локально:
apt install ./krdc_19.12.3-0ubuntu1astra1_amd64.deb
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Заметьте, вместо «./krdc_19.12.3-0ubuntu1astra1_amd64.deb» выбирается «krdc»
Некоторые пакеты не могут быть установлены. Возможно, то, что вы просите,
неосуществимо, или же вы используете нестабильную версию дистрибутива, где
запрошенные вами пакеты ещё не созданы или были удалены из Incoming.
Следующая информация, возможно, вам поможет:

Источник

Не устанавливается обновление БЮЛЛЕТЕНЬ № 20200327SE16 — Update 5

clop1000

New member

Возникла проблема с установкой обновлений!
на Astra linux 1.6 (на чистую установку) Пробовал устанавливать — БЮЛЛЕТЕНЬ № 20200327SE16 — Update 5

Все делал согласно инструкции — в том числе отмену запрета на установление бита исполнения.

В ходе установки возникают проблемы с зависимостями:
cusp-daemon (>= 2.2.1-8astra.se29) но 2.2.1.-8astra.se14 уже установлен
apt -f install — не может починить это

Если apt -f install не делать вообще, то система вообще не грузится после загрузки.

New member

extasy

New member

Возникла проблема с установкой обновлений!
на Astra linux 1.6 (на чистую установку) Пробовал устанавливать — БЮЛЛЕТЕНЬ № 20200327SE16 — Update 5

Все делал согласно инструкции — в том числе отмену запрета на установление бита исполнения.

В ходе установки возникают проблемы с зависимостями:
cusp-daemon (>= 2.2.1-8astra.se29) но 2.2.1.-8astra.se14 уже установлен
apt -f install — не может починить это

Если apt -f install не делать вообще, то система вообще не грузится после загрузки.

Если делать вручную как они пишут на wiki, то тоже всегда одни проблемы. Попробуйте инструмент astra-update для автоматической установки обновлений (https://wiki.astralinux.ru/pages/viewpage.action?pageId=71833307). Примерный порядок действий:
1) скидываете исошник установочного диска в /mnt/
2) скидываете исошник диска с апдейтом в /mnt/
3) ставите пакет astra-update
4) пускаете команду astra-update -A

По этому способу ставил и Update5, и недавновышедший Update6. Все норм.

После этого могут быть только небольшие проблемы с дровами для некоторых видеокарт nVidia (те что поддерживают RTX), но это отдельная история и тоже решаемая.

Источник

Содержание

  1. Как исправить ошибки зависимостей Ubuntu
  2. от sasza
  3. Что такое программная зависимость?
  4. Исправление ошибок зависимостей с помощью Apt
  5. Исправление ошибок зависимостей с помощью Synaptic
  6. Способы избежать ошибок зависимости в Ubuntu
  7. Неудовлетворенные зависимости Ubuntu
  8. Неудовлетворенные зависимости в Ubuntu
  9. 1. Обновление и исправление зависимостей
  10. 2. Установка зависимостей
  11. 3. Удаление зависимостей
  12. 4. Распаковать пакет
  13. 5. Использовать snap пакеты
  14. Выводы
  15. Ошибка у вас зафиксированы сломанные пакеты
  16. Как исправить у вас зафиксированы сломанные пакеты?
  17. 1. Обновите списки пакетов
  18. 2. Установите битые пакеты
  19. 3. Очистите лишние пакеты
  20. 4. Используйте dpkg
  21. 5. Разрешите зависимости
  22. Выводы
  23. Оцените статью:
  24. Об авторе
  25. 8 комментариев
  26. Неразрешенные зависимости. Поврежденная система пакетов
  27. Примеры базового и продвинутого использования команд apt, apt-cache, dpkg для управления пакетами в Ubuntu/Debian
  28. Что такое apt?
  29. Что такое apt-cache?
  30. Обновления кэша с информацией о приложениях
  31. Установка пакета
  32. Поиск пакетов
  33. Поиск пакетов только по названию
  34. Как проверить, установлен ли пакет
  35. Просмотр информации о пакете
  36. Как удалить пакет
  37. Как полностью удалить пакет, вместе с конфигурационными файлами
  38. Обновление всех пакетов системе в Kali Linux
  39. Как узнать, в каком пакете содержится файл
  40. Как проверить все зависимости пакета
  41. Как узнать, для каких программ данный пакет является зависимостью
  42. Как просмотреть список изменений пакета
  43. Как скачать пакет без установки
  44. Как проверить, всё ли впорядке с кэшем приложений
  45. Как удалить неиспользуемые пакеты
  46. Как очистить старый репозиторий загруженных пакетов.
  47. Исправление ошибок установки пакетов и зависимостей
  48. Как мне перечислить все доступные пакеты?
  49. Как проверить статистику кеша
  50. Как установить или обновить только определённые пакеты?
  51. Как установить пакеты без обновления
  52. Как обновить только определённые пакеты
  53. Как установить конкретную версию пакета?
  54. Как загрузить только исходный код пакета
  55. Как я могу скачать и распаковать пакет
  56. Как я могу скачать, распаковать и скомпилировать пакет
  57. Как мне найти и установить зависимости для сборки пакета?
  58. Как автоматически удалить зависимости удаляемого пакета
  59. Как найти все файлы пакета
  60. Как проверить пакет на наличие неработающих зависимостей.
  61. Как перечислить все рекомендуемые отсутствующие пакеты данного пакета
  62. Как проверить версию установленного пакета
  63. Резюме

Как исправить ошибки зависимостей 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 о необходимости продолжить процесс разрешения зависимостей.

How to correct Ubuntu dependency errors

Функция исправления выйдет и соберет все недостающие программные зависимости, необходимые программе. Когда процесс завершен, ваши ошибки устранены, и приложение готово к использованию!

Способы избежать ошибок зависимости в Ubuntu

Ошибок зависимости в Ubuntu можно легко избежать, следуя этому простому правилу: устанавливайте программное обеспечение только из официальных источников программного обеспечения Ubuntu. Не поддавайтесь искушению загружать случайные пакеты DEB, если они вам не нужны. Ubuntu имеет огромное количество бесплатного программного обеспечения с открытым исходным кодом и проприетарного программного обеспечения. Не должно быть никаких причин для загрузки пакетов DEB из Интернета (тем более, что многие из них имеют проблемные проблемы с зависимостями).

1607226362 608 How to correct Ubuntu dependency errors

Иногда необходимо получить программное обеспечение не из источников программного обеспечения Ubuntu. Даже с огромным количеством приложений Ubuntu, которые нужно установить, некоторые ускользают от проблем. Если вам нужно заполучить приложение, которого нет в традиционных источниках программного обеспечения Ubuntu, подумайте о поиске версии Snap или Flatpak, поскольку у них никогда не возникает проблем с зависимостями, и регулярно получайте обновления непосредственно от разработчиков.

Источник

Неудовлетворенные зависимости Ubuntu

При установке пакетов из официальных или сторонних репозиториев вы можете столкнуться с проблемой неудовлетворенные зависимости Ubuntu. Чтобы понять причину возникновения этой ошибки сначала надо разобраться как работают пакетные менеджеры в Linux. Здесь всё компоненты системы, библиотеки и сами программы разделены на пакеты. И если какой-либо программе нужна определенная библиотека, она не поставляется вместе с этой библиотекой, а ожидает, что эта библиотека будет уже установлена в системе.

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

Неудовлетворенные зависимости в Ubuntu

Snimok ekrana ot 2019 09 04 22 40 10

По английски наша ошибка ещё может писаться как the following packages have unmet dependencies. Она может возникнуть в нескольких случаях, давайте сначала рассмотрим основные из них:

1. Обновление и исправление зависимостей

Самое первое что надо сделать при проблемах с зависимостями, это хоть как-нибудь их исправить, потому что иначе пакетный менеджер работать не будет. В некоторых случаях, если списки репозиториев давно не обновлялись их обновление может помочь:

Snimok ekrana ot 2019 09 04 22 34 48

Эта команда установит зависимости, которые есть во официальных репозиториях (поможет при использовании dpkg) и если это не решит проблему, то удалит пакеты, для которых зависимости удовлетворить не удалось. Также после этого можно выполнить:

А потом повторить предыдущую команду. Следующим шагом можно попробовать обновить систему до самой последней версии. Это тоже может помочь если вы пытаетесь установить пакет из официальных репозиториев и при этом возникает проблема с зависимостями:

sudo apt upgrade
sudo apt full-upgrade

Snimok ekrana ot 2019 09 04 22 34 48

Если причиной вашей проблемы стал устаревший пакет надо его удалить или придумать для него замену. Например, если у вас установлена старая версия php, могут возникнуть проблемы с установкой новой версии, потому что будут конфликтовать версии библиотек, от которых зависит программа. Однако можно найти PPA со специально подготовленной старой версией php, которая ни с кем конфликтовать не будет.

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

2. Установка зависимостей

Дальше установка зависимостей Ubuntu. Следующий этап, если вы скачали пакет в интернете, например, от другого дистрибутива с таким же пакетным менеджером, можно попытаться установить таким же способом библиотеки, которые он просит. Это может сработать особенно, если вы пытаетесь установить программу из старой версии дистрибутива. Пакеты можно искать прямо в google или на сайте pkgs.org:

Snimok ekrana ot 2019 09 04 22 12 06

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

Snimok ekrana ot 2019 09 04 22 39 09

После загрузки пакета с сайта его можно установить через тот же dpkg:

После этого можно снова попробовать установить свой пакет. Но устанавливаемая библиотека может потребовать свои неудовлетворенные зависимости, а та ещё свои, поэтому тянуть программы из других дистрибутивов таким образом не рационально.

3. Удаление зависимостей

Если у вас есть скачанный пакет, и он говорит, что он зависит о версии библиотеки, которой в вашей системе нет, но вы уверены, что ему подойдет и другая версия, то можно просто убрать эту зависимость из пакета. Но для этого надо его перепаковать. Такая ситуация была когда-то с популярным менеджером Viber. Рассмотрим на примере того же вайбера.

Сначала распакуйте пакет в подпапку package командой:

Затем туда же извлеките метаданные пакета:

В файле package/DEBIAN есть строчка Depends, где перечислены все библиотеки, от которых зависит пакет и их версии. Просто удалите проблемную библиотеку или измените её версию на ту, которая есть в системе.

Затем останется только собрать пакет обратно:

И можете устанавливать, теперь с зависимостями будет всё верно:

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

4. Распаковать пакет

Следующий способ подойдет, если программа которую вы устанавливаете это библиотека, например, веб-драйвер для Selenium. Пакет можно распаковать и просто разложить исполняемые файлы из него по файловой системе в соответствии с папками внутри архива. Только желательно использовать не корневую файловую систему, а каталог /usr/local/ он как раз создан для этих целей.

5. Использовать snap пакеты

Snimok ekrana ot 2019 09 04 22 38 26

Выводы

В этой статье мы разобрали как исправить проблемы с зависимостями Ubuntu. Некоторые из способов довольно сложные, а другие проще. Но сама эта система, согласно которого пакеты зависят от других, а те ещё от других очень сложная и не удивительно, что время от времени в ней возникают ошибки. А какие способы решения этой проблемы вы знаете? Напишите в комментариях?

Источник

Ошибка у вас зафиксированы сломанные пакеты

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

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

Как исправить у вас зафиксированы сломанные пакеты?

Snimok ekrana ot 2020 08 11 15 55 00

1. Обновите списки пакетов

Возможно вам не удалось установить нужные пакеты потому что списки репозиториев устарели, и там ещё не было нужных пакетов. Для обновления списка пакетов выполните:

Snimok ekrana ot 2020 08 11 15 55 32

2. Установите битые пакеты

После обновления списка пакетов из репозиториев может помочь установка битых пакетов. Этот шаг поможет особенно если вы устанавливали пакет с помощью dpkg и теперь нужно доустановить его зависимости с помощью пакетного менеджера. Для этого есть специальная команда:

Snimok ekrana ot 2020 08 11 15 55 44

3. Очистите лишние пакеты

Установке могут мешать лишние пакеты, которые больше не нужны в системе. Для их удаления выполните:

sudo apt autoremove

Утилита отобразит список всех битых пакетов, которые не установлены, вы можете попытаться их удалить с помощью команды:

4. Используйте dpkg

Вместо apt вы можете использовать команду dpkg чтобы посмотреть какие пакеты вызывают проблему. Просто выполните:

Команда покажет проблемные пакеты, а потом вы сможете их удалить той же командой:

5. Разрешите зависимости

Битые пакеты чаще всего появляются из-за того, что пакетный менеджер не может найти для них нужные зависимости. Если вам всё же очень нужно установить такой пакет, просто разрешите эти зависимости. Для этого можно скачать и установить их вручную или если вы уверенны, что зависимости в пакете указаны неверно, можно скачать его распаковать и удалить мешающие зависимости. Подробнее об этом читайте в этой статье.

Выводы

В этой небольшой статье мы рассмотрели что делать если в вашей системе появились битые пакеты и как их исправить. Здесь решение проблемы очень сильно зависит от вашей ситуации, но здесь приведены основные варианты решения, которые должны помочь вернуть пакетный менеджер к работе. Иногда рекомендуют удалить пакет вручную из базы данных dpkg /var/lib/dpkg/status, однако лучше этого не делать и найти путь решить проблему по другому, ручное редактирование подобных файлов может создать ещё больше проблем.

Нет похожих записей

Оцените статью:

Об авторе

Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.

8 комментариев

Вот почему я использую Fedora с DNF, за 5 лет использования даже не припомню случаев некорректной работы DNF. APT в Дебиан подобных дистрибутивах это сплошное разочарование.

Если бы все так было просто с зависимостями, что их через форсе принудительно установить, то это был бы не Линукс. Ниче, что система после таких манипуляций не работает? После ваших советов, новичек «уложит» систему точно.

Согласен. С Fedora бубен уже покрылся пылью. Чего все с этой Ubunto’й носятся.

Ничего не помогло. Постоянно пишет, что сломаны пакеты. к примеру хочу установить: apt-get install mariadb-server. Делаю как вы пишите.
Следующие пакеты имеют неудовлетворённые зависимости:
mariadb-server : Зависит: mariadb-server-10.1 (>= 1:10.1.29-6) но он не будет установлен
E: Невозможно исправить ошибки: у вас зафиксированы сломанные пакеты.
root@user-All-Series:

# sudo apt clean
root@user-All-Series:

# sudo apt autoremove
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Обновлено 0 пакетов, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
root@user-All-Series:

Источник

Неразрешенные зависимости. Поврежденная система пакетов

Здравствуйте. Только начинаю осваивать, не могу разобраться вот с этим. Прошу помощи.

следующие пакеты имеют неудовлетворенные зависимости: linux-headers-3.13.0.67-generic: Depends:linux-headers-3.13.0.67 но он не установлен

135041:964175722

Я не понял, в чем вопрос. Тебе же все написано, причем по-русски.

p

Почему у него пакет зависит от самого себя и для самого себя не смог разрешить зависимости? Лол.

135041:964175722

Не сам от себя, читай вывод внимательнее.

p

Понял. Моя невнимательность.
Ну, тогда пусть установит linux-headers-3.13.0.67, а потом linux-headers-3.13.0.67-generic.

p

95008: 1869325502

запускаю, потом терминал моргает и закрывается. Всё

Не 16.04. Стояла по ряду причин старая 14.04.LTS Сейчас обновиться не дает, вот пыталась разобраться.

Версия ядра 3.13.0.66-generic При попытке удаления выходит:

Думаю тут все понятно. Для ясности скинь текущее положение дел на диске:

Источник

Примеры базового и продвинутого использования команд apt, apt-cache, dpkg для управления пакетами в Ubuntu/Debian

Одна важная вещь, которую нужно освоить при администрировании системы/сервера Linux, — это управление пакетами с использованием различных инструментов управления пакетами.

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

Инструменты управления пакетами помогают администраторам системы/сервера во многих отношениях, например:

В этой статье объясняется, как быстро вы можете научиться устанавливать, удалять, обновлять и искать программные пакеты с помощью команд apt и apt-cache из командной строки. В этой статье представлены некоторые полезные команды, которые помогут вам справиться с управлением пакетами в системах на основе Debian/Ubuntu.

Что такое apt?

Утилита apt — это мощная и бесплатная программа командной строки для управления пакетами, которая используется для работы с библиотекой APT (Advanced Packaging Tool) в Debian и производных дистрибутивах для установки новых пакетов программного обеспечения, удаления существующих пакетов программного обеспечения, обновления существующих пакетов программного обеспечения и даже используется для обновления всей операционной системы.

Что такое apt-cache?

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

Обновления кэша с информацией о приложениях

Когда в репозиторий вносятся изменения, например, при обновлении пакета, необходимо синхронизировать эту информацию с локальным кэшем вашей операционной системы Linux. Это делается командой:

Этого же результата (обновления кэша) можно достичь разными способами, в том числе имеется ещё несколько команд. Например, следующая команда также обновит кэш (нет принципиальной разницы, какую команду вы используете):

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

Установка пакета

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

Поиск пакетов

Для поиска пакетов предназначена команда вида:

Данная команда ищет по описанию пакетов и может выводить слишком большой список. Эта команда может пригодиться, если имя нужной утилиты не совпадает с названием пакета (например, один пакет содержит несколько утилит).

Обратите внимание, что для данной команды, в отличие от большинства других с apt, не требуются права root (можно использовать без sudo).

Поиск пакетов только по названию

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

Вы также можете указать подстановочные символы, например для поиска по названию, начинающемуся на слово ПАКЕТ:

Для поиска по названию, оканчивающемуся на слово ПАКЕТ:

Для поиска по названию, в котором присутствует слово ПАКЕТ:

Ещё более удобной, на мой взгляд, командой для поиска пакетов является:

Последняя команда ищет в именах по слову ПАКЕТ и выводит список всех пакетов, где оно встречается. Использовать подстановочные символы не нужно.

Как проверить, установлен ли пакет

Вы можете использовать команды apt list или apt search не только для поиска пакетов, но и просмотра информации о том, установлены ли они.

apt

Рядом с описанием пакетов вы можете увидеть один из трёх вариантов:

Просмотр информации о пакете

Эта команда поможет вам отобразить информацию о пакете или пакетах, запустите команду, указав все пакеты, информацию о которых вы хотите отобразить.

apt show

Как удалить пакет

Для удаления используйте команду вида

Можно удалять сразу много пакетов за раз:

Как полностью удалить пакет, вместе с конфигурационными файлами

При удалении пакета удаляются все его файлы, но обычно остаются небольшие (изменённые) файлы конфигурации пользователя на случай, если удаление было случайным. В этом случае простая отправка запроса на установку для случайно удалённого пакета восстановит его работу, как и раньше. С другой стороны, вы можете избавиться от этих остатков, вызвав purge даже для уже удалённых пакетов. Обратите внимание, что это не влияет на данные или конфигурацию, хранящиеся в вашем домашнем каталоге.

Итак, для полного удаления пакета используйте команду вида:

Обновление всех пакетов системе в Kali Linux

Чтобы обновить все пакеты, для которых вышли новые версии, а также установить необходимые зависимости и удалить мешающие пакеты, используется команда:

Среди удаляемых пакетов могут быть конфликтующие (мешающие установке требуемых зависимостей).

Аналогичный результат можно получить командами (это одна из немногих команд, которая различается для apt и apt-get):

Для удобства можно объединить команду обновления кэша и команду запуска полного обновления системы в одну, опция -y используется для того, чтобы у нас не спрашивалось подтверждение, а сразу начался процесс установки новых пакетов:

Как узнать, в каком пакете содержится файл

Если вы компилируете программы из исходных кодов, то вы, наверняка, сталкивались с ошибками компиляции, когда программа не находит какой-либо файл и компиляция обрывается. Что делать в данной ситуации? Понятно, что нужно установить пакет, который содержит требуемый файл. Но как узнать имя этого пакета?

С помощью программы apt-file можно искать по именам файлов в пакетах (как установленных, так и нет). Также она может показать все файлы в пакете.

Сразу после установки кэш данных о программах пуст. Чтобы его обновить нужно выполнить команду:

Когда всё готово, то поиск осуществляется так:

К примеру поиск файла ffi.h:

У программы apt-file есть альтернативы, подробности смотрите в статье «Как в Linux узнать, в каком пакете содержится файл».

Как проверить все зависимости пакета

Эта команда поможет вам отобразить необработанную информацию о зависимостях конкретного указанного вами пакета.

Как узнать, для каких программ данный пакет является зависимостью

Если вы хотите удалить программу, но не уверены, нужна ли она для других программ, то вы можете проверить, для каких пакетов она является зависимостью командой вида:

Как просмотреть список изменений пакета

Для пакетов вы можете вывести список изменений, сделанных в различных версиях программы. Для этого выполните команду вида:

Как скачать пакет без установки

Если вы хотите скачать пакет без установки, например, чтобы изучить его или внести изменения, то выполните команду вида:

Как проверить, всё ли впорядке с кэшем приложений

Если вы хотите узнать, имеются ли сломанные зависимости, то выполните диагностическую команду:

Как удалить неиспользуемые пакеты

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

Её использование безопасно и не должно приводить к проблемам.

Как очистить старый репозиторий загруженных пакетов.

Опция «clean» или «autoclean» удалит все старые локальные репозитории загруженных файлов пакетов.

Исправление ошибок установки пакетов и зависимостей

Опция -f исправляет, пытается привести в норму систему с нарушенными зависимостями. Эта опция, когда используется с install/remove, может пропустить какие-либо пакеты, чтобы позволить APT найти вероятное решение. Если пакеты указаны, эта команда должна полностью исправить проблему.

Как мне перечислить все доступные пакеты?

Чтобы вывести список всех доступных пакетов, введите следующую команду.

Чтобы найти и перечислить все пакеты, начинающиеся с «СЛОВА», вы можете использовать следующую команду.

Как проверить статистику кеша

apt cache stats

Как установить или обновить только определённые пакеты?

Подкоманда «install» отслеживается одним или несколькими пакетами, которые хотят установить или обновить.

Как установить пакеты без обновления

Использование подкоманды «—no-upgrade» предотвратит обновление уже установленных пакетов.

Как обновить только определённые пакеты

Команда «—only-upgrade» не устанавливает новые пакеты, а только обновляет уже установленные пакеты и отключает новую установку пакетов.

Как установить конкретную версию пакета?

Допустим, вы хотите установить только определённую версию пакетов, просто используйте «=» с именем пакета и добавьте желаемую версию.

Как загрузить только исходный код пакета

Чтобы загрузить только исходный код определенного пакета, используйте параметр «—download-only» с «именем пакета», как показано.

Как я могу скачать и распаковать пакет

Чтобы загрузить и распаковать исходный код пакета в определённый каталог, введите следующую команду.

Как я могу скачать, распаковать и скомпилировать пакет

Вы также можете загрузить, распаковать и скомпилировать исходный код одновременно, используя опцию «—compile», как показано ниже.

Как мне найти и установить зависимости для сборки пакета?

Эта команда «build-dep» выполняет поиск в локальных репозиториях в системе и устанавливает зависимости сборки для пакета. Если пакет не существует в локальном репозитории, она вернёт код ошибки.

Как автоматически удалить зависимости удаляемого пакета

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

Как найти все файлы пакета

Следующая команда поможет вам составить список всех файлов, содержащихся в пакете:

Как проверить пакет на наличие неработающих зависимостей.

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

Как перечислить все рекомендуемые отсутствующие пакеты данного пакета

Эта команда покажет, какие пакеты рекомендованы, но не установлены. Работает только в Linux Mint.

Как проверить версию установленного пакета

Следующая команда покажет вам версию установленного пакета.

Резюме

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

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

Источник

Ошибки зависимости пакетов могут возникать в Ubuntu после установки некоторых приложений. Решения, принятые пользователями во время установки, или проблемы на системном уровне, выходящие из-под контроля пользователей, могут привести к повреждению пакетов.

Если вы видите такие слова, как «неудовлетворенные зависимости», «сломанные пакеты», «пакеты были сохранены обратно» в выводе терминала, скорее всего, у вас могут быть конфликты зависимостей. В этой статье будет перечислено несколько методов, которые можно использовать для предотвращения и исправления подобных ошибок зависимостей. Обратите внимание, что методы, предлагаемые ниже, не расположены в любом порядке.

Пакеты обновлений

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

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

$ судо подходящее обновление

Изменить сервер загрузки пакетов

Если вы получаете сообщение об ошибке «не удается найти пакет» при выполнении приведенной выше команды обновления, попробуйте изменить загрузочные зеркала. Пакеты Ubuntu предоставляются конечным пользователям с серверов, расположенных по всему миру. Иногда с этих серверов доступны только частичные или неработающие обновления пакетов, что приводит к ошибкам во время обновления. Эта проблема обычно решается автоматически через некоторое время, когда все пакеты Ubuntu правильно клонированы в этих зеркалах. Однако вы можете вручную изменить расположение зеркала, чтобы решить эту проблему.

Чтобы изменить сервер загрузки, запустите приложение «Программное обеспечение и обновления» из средства запуска приложений. На вкладке «Программное обеспечение Ubuntu» выбор «Главный сервер» в раскрывающемся списке «Загрузить с» почти гарантированно устранит любые проблемы с доступностью пакетов. Однако скорость загрузки может быть низкой в ​​зависимости от вашего местоположения и близости к серверам. Ubuntu по умолчанию выбирает сервер, который даст вам максимальную скорость в зависимости от вашего текущего местоположения. Вы можете переопределить его, выбрав любой из перечисленных серверов или нажав «Выбрать лучший сервер», чтобы оставить выбор на Ubuntu.

Пакеты обновлений

Обновление установленных пакетов может исправить ошибки зависимостей. Для обновления пакетов Ubuntu доступны две команды, каждая из которых ведет себя по-разному:

  • «Upgrade»: обновляет установленные пакеты, если доступны какие-либо обновления, не удаляет ни один пакет, даже если есть неудовлетворенные или неработающие зависимости.
  • «Dist-upgrade»: делает попытки разумно обновлять пакеты и устранять зависимости, удаляет сломанные и устанавливает новые зависимости везде, где это необходимо для исправления ошибок.

Команды для обновления и dist-upgrade соответственно:

$ судо подходящее обновление
$ судо apt dist-upgrade

Очистить кэшированные и остаточные пакеты

Менеджер пакетов Ubuntu «apt» хранит загруженные пакеты в папке кеша. В следующий раз, когда вам потребуется переустановить уже кэшированный пакет, Ubuntu получит пакет deb из папки кеша, а не повторно загрузит его с сервера. Очистка этого кеша освобождает дисковое пространство, а также помогает в некоторых случаях исправить зависимости и ошибки установки.

Кеш пакетов Apt можно очистить, выполнив следующую команду:

$ судо подходящий чистый

Есть еще одна подходящая команда «autoclean», которая очищает кеш пакетов. Однако вместо очистки всей папки он удаляет только те пакеты, которые были удалены с серверов репозитория.

$ судо apt autoclean

Сделайте имитацию установки

Можно смоделировать установку пакета, чтобы проверить возможные ошибки, возникающие во время реальной установки. Выполните команду ниже, заменив «имя пакета» на желаемое имя пакета (без кавычек), чтобы выполнить имитацию установки.

$ судо подходящий установить—пробный прогон «имя пакета»

Таким же образом можно произвести фиктивное удаление:

$ судо удачный удалить —пробный прогон «имя пакета»

Исправить неработающие пакеты

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

$ судо подходящий -fустановить

Настроить пакеты, которые не удалось установить из-за перебоев

Иногда менеджер пакетов apt внезапно останавливается, оставляя после себя пакеты, которые не удалось установить. Эти прерывания обычно происходят из-за факторов, не зависящих от менеджера пакетов apt. Например, если вы случайно закрыли терминал или ваш компьютер внезапно выключился, apt не сможет завершить настройку. Выполнение приведенной ниже команды исправит ошибки пакетов и проблемы с зависимостями, возникающие из-за этой проблемы.

$ судоdpkg—конфигурировать

Используйте PPA-Purge

«Персональный архив пакетов» или PPA — это программный репозиторий, который позволяет пользователям Ubuntu обновлять или устанавливать новые пакеты из неофициальных источников. PPA-Purge — это инструмент, который удаляет эти сторонние источники PPA и переводит установленные пакеты с PPA на стандартные версии. Использование PPA-Purge разрешит любые конфликты зависимостей, возникающие из пакетов, установленных или обновленных из PPA. Чтобы установить приложение командной строки PPA-Purge в Ubuntu, выполните следующую команду:

$ судо подходящий установить ppa-purge

Чтобы очистить PPA, запустите команду в следующем формате:

$ судо ppa-purge «ppa: адрес»

Например, текстовый редактор Geany PPA добавлен из здесь можно очистить, выполнив команду:

$ судо ppa-purge ppa: geany-dev/PPA

Используйте диспетчер пакетов Aptitude

Диспетчер пакетов Aptitude можно использовать вместо диспетчера пакетов apt по умолчанию в Ubuntu для устранения ошибок зависимостей. Aptitude новее, чем менеджер пакетов apt, и предоставляет дополнительные параметры, интерфейс на основе терминала и общую простоту использования. Aptitude объединяет множество подходящих параметров в одной команде, поэтому вам не нужно запускать несколько команд для исправления ошибок.

Например, использование диспетчера пакетов aptitude для удаления даже одного пакета даст вам возможность удалить неиспользуемые и оставшиеся пакеты, в то время как в apt есть отдельная команда, которая делает то же самое. Aptitude намного умнее в разрешении конфликтов зависимостей, чем apt, он обычно дает подробную обратную связь для разрешения конфликтов с несколькими вариантами, которые могут быть выбраны пользователем. Я всегда проверяю, что в моей системе установлены aptitude и PPA-Purge, прежде чем получать какие-либо экспериментальные пакеты.

Aptitude можно установить, выполнив команду ниже:

$ судо подходящий установитьспособность

Aptitude и apt имеют много общих параметров командной строки, но у aptitude есть несколько отличий. Вы можете изучить все варианты способностей из здесь.

Переустановите пакет рабочего стола Ubuntu

При переустановке пакета «ubuntu-desktop» будут включены основные пакеты, которые были установлены в Ubuntu по умолчанию. Он получит все пакеты, зависящие от метапакета ubuntu-desktop. Чтобы переустановить ubuntu-desktop, выполните следующую команду:

$ судо подходящий установить—reinstall Ubuntu-рабочий стол

Обратите внимание, что приведенная выше команда установит только основные пакеты ядра, а не приложения, такие как Firefox, Thunderbird, видеоплеер и т. Д.

Удалите или отключите PPA перед обновлением до более новой версии Ubuntu

Несмотря на то, что Ubuntu отключает любые PPA перед обновлением системы, чтобы предотвратить неудовлетворенные ошибки зависимостей во время и после При обновлении системы следует вручную удалить все сторонние PPA. Лучший способ сделать это — запустить команду PPA-Purge. выше.

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

Чтобы удалить PPA с помощью командной строки, выполните команду ниже в следующем формате:

$ судо add-apt-репозиторий —Удалить «Ppa: name»

Например, текстовый редактор Geany PPA добавлен из здесь можно удалить, выполнив команду:

$ судо add-apt-репозиторий —Удалить ppa: geany-dev/PPA

Чтобы удалить PPA с помощью метода графического интерфейса пользователя, обычно вам необходимо запустить приложение «Программное обеспечение и обновления» из средства запуска приложений. Однако из-за ошибки в Ubuntu этот метод не всегда работает, и он не может отключить PPA.

Чтобы обойти это, мы должны установить менеджер пакетов Synaptic, который является интерфейсом для apt. Чтобы установить Synaptic, выполните команду:

$ судо подходящий установить синаптический

Запустите «Synaptic Package Manager» из панели запуска приложений. Щелкните «Настройки»> «Репозитории». Перейдите на вкладку «Другое программное обеспечение» и щелкните PPA, который вы хотите удалить, чтобы выделить его. Нажмите кнопку «Удалить» внизу, чтобы удалить PPA из системы. Вы также можете отключить PPA, не удаляя его, чтобы его можно было снова включить после обновления системы. Для этого просто снимите флажок напротив PPA. Выполнив указанные выше действия, закройте окно «Программное обеспечение и обновления». Когда будет предложено обновить репозитории, нажмите кнопку «Обновить».

Будьте осторожны при добавлении новых PPA в систему

В большинстве случаев ошибки зависимости возникают при использовании сторонних PPA или установке пакетов deb из неофициальных источников. Также существует вероятность попадания вредоносного ПО в вашу систему через PPA. Поэтому вы всегда должны быть осторожны при добавлении любого случайного PPA в вашу систему. Добавляйте PPA только в том случае, если вы доверяете его источнику и сопровождающим / разработчикам. Несмотря на то, что мы пока не слышали о вредоносном или рекламном ПО, распространяемом через PPA, всегда есть риск, поскольку это сторонние репозитории, пакеты которых не проверены разработчиками Ubuntu.

Вывод

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

Понравилась статья? Поделить с друзьями:
  • Ubuntu как изменить точку монтирования раздела
  • Ubuntu как изменить тему
  • Ubuntu как изменить раскладку клавиатуры
  • Ubuntu как изменить размер разделов
  • Ubuntu как изменить права доступа к папке