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

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

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

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

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

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

sudo apt update --fix-missing

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

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

sudo apt install -f

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

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

sudo apt clean

Затем:

sudo apt autoremove

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

sudo dpkg --remove -force --force-remove-reinstreq имя_пакета

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

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

sudo dpkg --configure -a

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

sudo dpkg --remove -force --force-remove-reinstreq имя_пакета

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

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

Выводы

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

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Creative Commons License

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

Об авторе

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

besogonskiy

Слава

@besogonskiy

работаю php laravel разработчиком.

Система debian Buster.

устанавливал пакет в snap но потом прервал. Теперь получаю при попытке что-нибудь установить сообщение о том, что есть сломанные пакеты. Например,

Первая ошибка

root@dev:/home/xfile/Загрузки# apt-get install kate
Чтение списков пакетов… Готово
Построение дерева зависимостей… Готово
Чтение информации о состоянии… Готово
Некоторые пакеты не могут быть установлены. Возможно, то, что вы просите,
неосуществимо, или же вы используете нестабильную версию дистрибутива, где
запрошенные вами пакеты ещё не созданы или были удалены из Incoming.
Следующая информация, возможно, вам поможет:

Следующие пакеты имеют неудовлетворённые зависимости:
kate : Зависит: plasma-framework но он не может быть установлен
Зависит: libkf5newstuff5 (>= 5.27.0) но он не может быть установлен
Зависит: libkf5plasma5 (>= 4.96.0) но он не может быть установлен
libkf5xmlgui5 : Ломает: ktexteditor-katepart (< 5.70) но 5.54.0-1 должен быть установлен
Ломает: libkf5texteditor5 (< 5.70) но 5.54.0-1 должен быть установлен
E: Невозможно исправить ошибки: у вас зафиксированы сломанные пакеты.
root@dev:/home/xfile/Загрузки#

Или

Вторая ошибка

root@dev:/home/xfile# sudo apt install snapd
Чтение списков пакетов… Готово
Построение дерева зависимостей… Готово
Чтение информации о состоянии… Готово
Некоторые пакеты не могут быть установлены. Возможно, то, что вы просите,
неосуществимо, или же вы используете нестабильную версию дистрибутива, где
запрошенные вами пакеты ещё не созданы или были удалены из Incoming.
Следующая информация, возможно, вам поможет:

Следующие пакеты имеют неудовлетворённые зависимости:
apparmor : Ломает: snapd (< 2.44.3+20.04~) но 2.37.4-1+b1 должен быть установлен
E: Невозможно исправить ошибки: у вас зафиксированы сломанные пакеты.
root@dev:/home/xfile#

Чего только не пробовал. Не получается никак восстановить работоспособность системы.


  • Вопрос задан

    более двух лет назад

  • 2706 просмотров

Пригласить эксперта

Тут всё просто у вас есть пакеты не из бастера, вам нужно создать pref файл и указать что бастер имеет приоритеты выше чем левые репозитории и если нужно с возможностью удаления не корректных зависимостей и всё у вас заработает.
записать в файл /etc/apt/preferences.d/buster.pref
Package: *
Pin: release n=buster
Pin-Priority: 1001

Но учтите что это может понизить версии многих пакетов и часть из них могут быть удалены если нет возможности поставить их с бастера…. Либо можете поставить приоритет у другого репозитория и всё будет ставиться как укажите. В любом случае вам нужно почитать про приоритеты.

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

еще стоит глянуть в выхлоп
$ dpkg -l | grep -Pv '^ii'
показывает много чего сломанного, недоудаленного и т.д.

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


  • Показать ещё
    Загружается…

22 июн. 2023, в 15:50

4000 руб./за проект

22 июн. 2023, в 15:48

14000 руб./за проект

22 июн. 2023, в 15:46

5000 руб./за проект

Минуточку внимания

17.04.2022

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

26.04.2022

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

скорее всего точно так же как на debian или ubuntu. apt, dpkg, если не поможет то удалять в /var/lib/dpkg/status, а потом обновиться
sudo apt-get update —fix-missing
sudo apt-get install -f
sudo dpkg —configure -a
sudo apt-get clean
в самых тяжелых случаях
dpkg -l | grep ^ .. r
sudo dpkg —remove —force-remove-reinstreq
sudo apt-get clean
Способов много, копайте в сторону debian

Последнее редактирование: 26.04.2022

26.04.2022

Аналогичная проблема:
Установил астралинукс 1.7.1
скачал base репозитарий и распаковал его в /opt/repo/
указал в sources.list

deb file:///opt/repo/ 1.7_x86-64 contrib main non-free
остальное закомментировано

если делаю apt update
все пакеты имеют последнюю версию

apt install [любой пакет]

ошибка как у автора темы.

Данная проблема вообще никак не рассмотрена на сайте wiki.astralinux !!!

sudo apt-get update —fix-missing
sudo apt-get install -f
sudo dpkg —configure -a
sudo apt-get clean
в самых тяжелых случаях
dpkg -l | grep ^ .. r
sudo dpkg —remove —force-remove-reinstreq
sudo apt-get clean
Способов много, копайте в сторону debian

абсолютно все пакеты целые, система только что установлена(на гипервизоре), проблема в чем то другом

Последнее редактирование: 26.04.2022

27.04.2022

sudo apt show krdc_19.12.3-0ubuntu1astra1_amd64.deb есть выбор или один пакет?
Извените у меня вопрос на какой основе Астра работает? У меня Астры нет krds это Клиент RDC (Remote Desktop Connection) КДЕ. Как я понял у Астры репозиторий свой, и для того чтоб подключать сторонние пакеты похоже нужно подключать и репозитории, иначе зависимости могут не решиться. Если основа Астры взята с gnome, то лучше поставить remmina, возможно и репозиторий нужно будет подключать. Скорей всего вам нужно подключить репозиторий debian. А вот сколько зависимостей потянут за собой krdc или remmina это уже вам выбирать. Потянутся пакеты из КДЕ или Гнома.

Последнее редактирование: 27.04.2022

27.04.2022

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

Вопросы по Astra Linux 1.7. Это совсем другая вселенная.

haput


27.04.2022

Для удаленных подключений к пользователям — Remmina, а для RDC windows server — FreeRDP (проброс принтера + буфер обмена)
опробовано на 100+ машинах

27.04.2022

Вопросы по Astra Linux 1.7. Это совсем другая вселенная.

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

27.04.2022

apt show krdc
Package: krdc
Version: 4:20.12.3-1
Priority: optional
Section: net
Maintainer: Debian/Kubuntu Qt/KDE Maintainers <debian-qt-kde@lists.debian.org>
Installed-Size: 3 623 kB
Depends: libc6 (>= 2.15), libkf5bookmarks5 (>= 5.69.0), libkf5completion5 (>= 5.25.0~), libkf5configcore5 (>= 5.25.0~), libkf5configgui5 (>= 5.25.0~), libkf5configwidgets5 (>= 4.96.0), libkf5coreaddons5 (>= 5.2.0), libkf5dnssd5 (>= 5.25.0~), libkf5i18n5 (>= 5.25.0~), libkf5kcmutils5 (>= 5.25.0~), libkf5notifications5 (>= 5.25.0~), libkf5notifyconfig5 (>= 5.25.0~), libkf5service-bin, libkf5service5 (>= 4.96.0), libkf5wallet-bin, libkf5wallet5 (>= 5.25.0~), libkf5widgetsaddons5 (>= 5.25.0~), libkf5windowsystem5 (>= 5.25.0), libkf5xmlgui5 (>= 5.25.0~), libqt5core5a (>= 5.15.1), libqt5gui5 (>= 5.14.1) | libqt5gui5-gles (>= 5.14.1), libqt5widgets5 (>= 5.2.0~alpha1), libqt5xml5 (>= 5.0.2), libssh-4 (>= 0.8.0), libstdc++6 (>= 4.1.1), libvncclient1 (>= 0.9.10)
Recommends: freerdp2-x11
Suggests: khelpcenter, krfb, freerdp2-wayland
Homepage: https://apps.kde.org/en/krdc
Tag: implemented-in::c++, interface::graphical, interface::x11,
network::client, protocol::TODO, role::program, scope::utility,
suite::kde, uitoolkit::qt, use::login, x11::application
Download-Size: 1 683 kB
APT-Sources: https://deb.debian.org/debian bullseye/main amd64 Packages
Description: Remote Desktop Connection client
The KDE Remote Desktop Connection client can view and control a desktop
session running on another system. It can connect to Windows Terminal Servers
using RDP and many other platforms using VNC/RFB.
.
This package is part of the KDE networking module.

27.04.2022

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

В Astra Linux 1.7 нет места левым пакетам и репам. Только родные репы и проверенные QA пакеты. Иначе, проблемы с безопасностью. Народу в техподдержку писать нужно или баг оформить.

27.04.2022

В Astra Linux 1.7 нет места левым пакетам и репам. Только родные репы и проверенные QA пакеты. Иначе, проблемы с безопасностью. Народу в техподдержку писать нужно или баг оформить.

debian не родной репозиторий? Из чего же тогда сделана Астра?

27.04.2022

debian не родной репозиторий? Из чего же тогда сделана Астра?

Так у Вас в школе Astra Special Edition? Я думал что для школ такие не поставляют…

27.04.2022

Так у Вас в школе Astra Special Edition? Я думал что для школ такие не поставляют…

Нет у нас Астры Common Edition в школе, для школ эта ОС платная, хотя к ней присматривались. Минт, Роса, да сейчас вот Ред ОС. Сервера на debian.

27.04.2022

разобрался
если у вас дистрибутив 1.7.1 то репозиторий от 1.7.0 не подходит!

28.04.2022

debian не родной репозиторий?

Прикалываетесь?

28.04.2022

ага, только расширение у пакетов .deb похоже.

oko


28.04.2022

to banzay242
Ну, с такой логикой AstraLinux и с Windows полностью совместима — там же тоже кодовая база в основном на С/С++ написана, ага…
Репозитории у современной ALSE (про ALCE уже в другой ветке отвечал — на текущий момент это полупродукт на поиграццо, не более) весьма отличаются от репозиториев той версии Debian, на которой базируется релиз. Потому что множество ключевых пакетов пересобрано разработчиками ALSE. Со всеми вытекающими особенностями зависимостей, функционала и проч.

28.04.2022

to banzay242
Потому что множество ключевых пакетов пересобрано разработчиками ALSE. Со всеми вытекающими особенностями зависимостей, функционала и проч.

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

oko


28.04.2022

to kvv-vp
В 1.7 возможно, детально ее еще не ковырял. Вплоть до 1.6 пересобраны были далеко не все пакеты (часть из них вообще имеет открытые исходники, поэтому пересобирать их при отсутствии явных недоверенных функций бессмысленно), библиотеки и утилиты. На тему проверок по ОУД-2/1 — там хитрая схема, так что 100% гарантии после сертификации даже по такому уровню контроля нет…
И, что важно, до сих пор «в гражданском» применении ALSE допустимо вносить софт из сторонних репозиториев. Потому что сертификат по ИТ.ОС.А2.ПЗ (А1.ПЗ) в большей мере означает доверенность ключевых механизмов и целостность/стойкость/соответствие механизмов защиты. А прикладной софт, особенно утилитарный, особенно не участвующий в обработке ИОД, допустим, в принципе, любой. Пусть и с ограничениями и рядом доп.правил и требований его встраивания/инсталляции…

29.04.2022

А прикладной софт, особенно утилитарный, особенно не участвующий в обработке ИОД, допустим, в принципе, любой. Пусть и с ограничениями и рядом доп.правил и требований его встраивания/инсталляции…

Просвятите на счет драйверов. Они, как бы, доверенными считаются. Можно любые ставить? Или я не прав?

oko


29.04.2022

to kvv-vp
Red Book же, там и ограничения, и условия…
Впрочем, тут все не однозначно и зависит от:

  • обрабатываемой информации ограниченного доступа (и, как следствие, выбранного релиза ALSE 1.7 теперь);
  • линии, по которой был выдан сертификат (ФСБ, МО, ФСТЭК);
  • фактических требований безопасности, определенных для объекта, на котором используется ОС;
  • функций и задач, возложенных на софт, планируемый к интеграции (драйвер сетевой карты, в случае, когда сеть не используется для передачи ИОД, в целом, ни на что не влияет).

Хотя да, согласен, в условиях «коня в вакууме» полная «доверенность» возможна исключительно на условиях применения только «доверенного» общесистемного и прикладного ПО…

Содержание

  1. Ошибка у вас зафиксированы сломанные пакеты
  2. Как исправить у вас зафиксированы сломанные пакеты?
  3. 1. Обновите списки пакетов
  4. 2. Установите битые пакеты
  5. 3. Очистите лишние пакеты
  6. 4. Используйте dpkg
  7. 5. Разрешите зависимости
  8. Выводы
  9. Оцените статью:
  10. Об авторе
  11. 8 комментариев
  12. Неудовлетворенные зависимости Ubuntu
  13. Неудовлетворенные зависимости в Ubuntu
  14. 1. Обновление и исправление зависимостей
  15. 2. Установка зависимостей
  16. 3. Удаление зависимостей
  17. 4. Распаковать пакет
  18. 5. Использовать snap пакеты
  19. Выводы
  20. HackWare.ru
  21. Этичный хакинг и тестирование на проникновение, информационная безопасность
  22. Как установить пакет, для которого отсутствует зависимость нужной версии
  23. Ошибка «в значении поля «Description» обнаружена пустая строка»
  24. unixforum.org
  25. Как найти список битых пакетов?
  26. Как найти список битых пакетов?

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

Во время установки программ с помощью пакетного менеджера 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:

Источник

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

Источник

HackWare.ru

Этичный хакинг и тестирование на проникновение, информационная безопасность

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

Бывает что нужно установить пакет .deb для которого в стандартных репозиториях отсутствует нужная версия зависимости. Например, в зависимостях прописан пакет libcurl3, а в системе доступен только libcurl4; или в зависимостях libssl1.0.0, а в системе имеется только libssl1.0.2.

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

Для установки пакета его нужно скачать с официального сайта:

Пакет можно установить с помощью команды dpkg и ключей —ignore-depends:

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

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

Поэтому лучше пойти другим путём.

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

Распаковываем скаченный пакет deb:

Для распаковки используем утилиту ar, которая предназначена для создания, модификации и извлечения из архивов.

В результате будут извлечены следующие файлы:

Вообще, поскольку data.tar.xz содержит саму программу, то может возникнуть идея просто раскидать файлы в системе по нужным путям — это тоже будет работать, но мы сделаем чуть более сложно, но и более правильно.

Распаковываем контрольный архив:

Открываем текстовым редактором файл control:

control

Найдём там строку, начинающуюся с Depends:

То есть, это и есть список зависимостей.

Можно сделать проверку следующим образом — берём список, который идёт после Depends:, удаляем запятые, чтобы не нарушить синтаксис apt, и пытаемся установить все эти зависимости просто дописав этот список после sudo apt install, получается следующая команда:

Итак, требуется libcurl3, но в системе есть только libcurl4. Я просто меняю в файле control запись libcurl3 на libcurl4.

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

Ищем по более короткому описанию версии, то есть, например вместо libssl1.0.0 я ищу libssl1:

apt

Как можно увидеть, найдено целых два варианта: libssl1.0.2 и libssl1.1. На мой взгляд, libssl1.0.2 ближе к libssl1.0.0, поэтому я в файле control меняю запись libssl1.0.0 на libssl1.0.2.

control2

Сохраняем и закрываем файл control.

Теперь собираем установочный файл — делаем это в обратном разбору порядке.

Я уже пробовал, поэтому я знаю, что команда пожалуется на отсутствие файла postrm, поэтому просто создаём пустой файл postrm командой:

Упаковываем всё наше «добро» в control.tar.gz:

Разберём последнюю команду чуть подробнее. Строки pre post раскрываются в следующие:

То есть, фактически в создаваемый архив добавляются файлы postinst, postrm, preinst, prerm. Эти файлы представляют собой скрипты, выполняемые на различных этапах установки/удаления:

Они являются необязательными — то есть могут отсутствовать. Если команда tar написала, что отсутствует какой-либо файл (например, файл postrm), то отредактируйте эту команду — уберите из списка отсутствующий файл, например, вместо создания postrm можно было записать команду следующим образом:

Продолжаем. Вновь собираем deb:

Устанавливаем наш пофиксенный пакет:

Ошибка «в значении поля «Description» обнаружена пустая строка»

Если при установки пакета возникла ошибка:

То это означает, что в файле control есть последняя пустая строка — удалите эту пустую строку и пересоберите установочный файл.

После этого всё ставится как нужно:

dpkg

Если вам действительно просто нужен Viber, то смотрите статью «Как установить Viber на Linux».

Источник

unixforum.org

Форум для пользователей UNIX-подобных систем

Как найти список битых пакетов?

file.php?avatar=86778

Как найти список битых пакетов?

Сообщение жучара » 22.04.2018 02:30

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

Пакеты, имеющие неудовлетворённые зависимости:
libgtk-3-dev : Зависит: libgtk-3-0 (= 3.4.2-7+deb7u1) но 3.4.2-7+deb7u1.astra1 будет установлен
Зависит: libgdk-pixbuf2.0-dev (>= 2.26.0) но он не будет установлен
Зависит: libpango1.0-dev (>= 1.30.0) но он не будет установлен
Зависит: libatk1.0-dev (>= 2.2.0) но он не будет установлен
Зависит: libcairo2-dev (>= 1.10.0) но он не будет установлен
Зависит: libx11-dev но он не будет установлен
Зависит: libxext-dev но он не будет установлен
Зависит: libxinerama-dev но он не будет установлен
Зависит: libxi-dev но он не будет установлен
Зависит: libxrandr-dev но он не будет установлен
Зависит: libxcursor-dev но он не будет установлен
Зависит: libxfixes-dev но он не будет установлен
Зависит: libxcomposite-dev но он не будет установлен
Зависит: libxdamage-dev но он не будет установлен
E: Невозможно исправить ошибки, у вас отложены (held) битые пакеты.

Источник

Столкнулся с такой же проблемой. apt upgrade не помогал, т.е. ничего не обновлял. Вывел список не обновленных пакетов командой :

> apt list --upgradable
Вывод списка… Готово
apache2-bin/disco-updates,disco-security 2.4.38-2ubuntu2.3 amd64 [может быть обновлён с: 2.4.29-1ubuntu4.6]
plasma-vault/disco 5.15.4-0ubuntu1 amd64 [может быть обновлён с: 5.12.7-0ubuntu0.1]
url-dispatcher/disco 0.1+17.04.20170328-0ubuntu4 amd64 [может быть обновлён с: 0.1+16.04.20151110-0ubuntu2]

Попробовал обновить вручную и выяснилось что сломана зависимость с libcurl4 из-за пакета msodbcsql:

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

Следующие пакеты имеют неудовлетворённые зависимости:
 apache2-bin : Зависит: libcurl4 (>= 7.16.2) но он не будет установлен
E: Невозможно исправить ошибки: у вас зафиксированы сломанные пакеты.

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

Следующие пакеты имеют неудовлетворённые зависимости:
 msodbcsql : Зависит: libcurl3 но он не будет установлен
E: Ошибка: pkgProblemResolver::Resolve привёл к появлению сломанных пакетов. Это может быть вызвано зафиксированными пакетами.

После удаления пакета:

>sudo apt remove msodbcsql

Все обновления установились и обновление релиза пошло успешно.

Возможно, вам также будет интересно:

  • Возможно вы отключены от сети или возникла какая то ошибка на нашей стороне
  • Возможно spotify заблокирован брандмауэром код ошибки auth 15
  • Возможно spotify заблокирован брандмауэром код ошибки accesspoint 32
  • Возможная ошибка при пломбировании кариозной полости
  • Возможная ошибка при медикаментозной обработке кариозной полости

  • Понравилась статья? Поделить с друзьями:
    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии