- Ошибка у вас зафиксированы сломанные пакеты
- Как исправить у вас зафиксированы сломанные пакеты?
- 1. Обновите списки пакетов
- 2. Установите битые пакеты
- 3. Очистите лишние пакеты
- 4. Используйте dpkg
- 5. Разрешите зависимости
- Выводы
- Оцените статью:
- Об авторе
- 8 комментариев
- Неудовлетворенные зависимости Ubuntu
- Неудовлетворенные зависимости в Ubuntu
- 1. Обновление и исправление зависимостей
- 2. Установка зависимостей
- 3. Удаление зависимостей
- 4. Распаковать пакет
- 5. Использовать snap пакеты
- Выводы
- Как исправить ошибку Unmet Dependencies в Ubuntu —
- Способ 1: использовать параметр -f
- Метод 2: Используйте Aptitude
- Способ 3: убедитесь, что репозитории с ограничениями и юниверсами включены, и попробуйте лучший сервер
- Способ 4: очистить базу данных пакетов
- Метод 5: Удалите все удержанные пакеты
- Способ 6: очистить / удалить / отключить PPA
Ошибка у вас зафиксированы сломанные пакеты
Во время установки программ с помощью пакетного менеджера apt в любом из дистрибутивов, использующих этот пакетный менеджер, вы можете столкнуться с ошибкой, что у вас зафиксированы сломанные пакеты. Это пакеты, которые не установились полностью потому что им не хватает зависимостей или процесс установки был по какой-либо причине прерван.
В этой статье мы рассмотрим что делать с такой ошибкой, как её исправить, а также я дам ссылки на другие материалы на сайте, которые помогут справится с проблемой.
Как исправить у вас зафиксированы сломанные пакеты?
1. Обновите списки пакетов
Возможно вам не удалось установить нужные пакеты потому что списки репозиториев устарели, и там ещё не было нужных пакетов. Для обновления списка пакетов выполните:
sudo apt update —fix-missing
2. Установите битые пакеты
После обновления списка пакетов из репозиториев может помочь установка битых пакетов. Этот шаг поможет особенно если вы устанавливали пакет с помощью dpkg и теперь нужно доустановить его зависимости с помощью пакетного менеджера. Для этого есть специальная команда:
sudo apt install -f
3. Очистите лишние пакеты
Установке могут мешать лишние пакеты, которые больше не нужны в системе. Для их удаления выполните:
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, однако лучше этого не делать и найти путь решить проблему по другому, ручное редактирование подобных файлов может создать ещё больше проблем.
Нет похожих записей
Оцените статью:
Об авторе
Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.
8 комментариев
Вот почему я использую Fedora с DNF, за 5 лет использования даже не припомню случаев некорректной работы DNF. APT в Дебиан подобных дистрибутивах это сплошное разочарование.
Если бы все так было просто с зависимостями, что их через форсе принудительно установить, то это был бы не Линукс. Ниче, что система после таких манипуляций не работает? После ваших советов, новичек «уложит» систему точно.
Согласен. С Fedora бубен уже покрылся пылью. Чего все с этой Ubunto’й носятся.
dzentoo? это у меня на матунту бубен плесенью покрылся.
А ты говоришь не о убунту, а Gnome3. Мне его нескончаемые проблемы неведомы, Gnome2 — до сих пор рулит
Ничего не помогло. Постоянно пишет, что сломаны пакеты. к примеру хочу установить: apt-get install mariadb-server. Делаю как вы пишите.
Следующие пакеты имеют неудовлетворённые зависимости:
mariadb-server : Зависит: mariadb-server-10.1 (>= 1:10.1.29-6) но он не будет установлен
E: Невозможно исправить ошибки: у вас зафиксированы сломанные пакеты.
root@user-All-Series:
# sudo apt update —fix-missing
Сущ:1 http://lt.archive.ubuntu.com/ubuntu bionic InRelease
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Все пакеты имеют последние версии.
root@user-All-Series:
# sudo apt install -f
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Обновлено 0 пакетов, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
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
По английски наша ошибка ещё может писаться как 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. Некоторые из способов довольно сложные, а другие проще. Но сама эта система, согласно которого пакеты зависят от других, а те ещё от других очень сложная и не удивительно, что время от времени в ней возникают ошибки. А какие способы решения этой проблемы вы знаете? Напишите в комментариях?
Источник
Как исправить ошибку Unmet Dependencies в Ubuntu —
ошибка Следующие пакеты имеют неудовлетворенные зависимости уже некоторое время мучает пользователей Ubuntu, и в разных версиях Ubuntu появляется все больше и больше сообщений об ошибке. Система управления пакетами APT проста в использовании, но в некоторых случаях, например, при смешивании сторонних зависимостей, вы можете получить эту ошибку из APT-получить.
Это происходит, когда вы пытаетесь установить что-то в системе apt через терминал, и установка завершается неудачно без каких-либо явных проблем. Эта проблема не ограничивается какой-либо одной конкретной программой, но может случиться и с некоторыми из них. Это связано с тем, что проблема заключается в системе apt, а не в программе, которую вы устанавливаете.
К счастью, для этого есть довольно много решений, некоторые из которых проще сделать, а другие сложнее, но если вы будете следовать инструкциям, описанным ниже, вы сразу же избавитесь от ошибки.
Примечание. Перед выполнением любого из методов рекомендуется создать резервную копию файлов конфигурации, таких как так что вы можете отменить любые изменения в случае, если что-то пойдет не так. Это делается с помощью следующих шагов:
- Нажмите одновременно Alt, Ctrl и T на клавиатуре, чтобы открыть терминал.
- Введите
и нажмите Enter.
- Когда предыдущая команда завершит работу, введите sudo cp / var / lib / dpkg / status /var/lib/dpkg/status.original и снова нажмите Enter.
Способ 1: использовать параметр -f
Это самая простая попытка, для которой нужно добавить еще две буквы к вводимой вами команде. Вместо того, чтобы использовать sudo apt-get установить PACKAGENAME, где PACKAGENAME — это пакет, который вы пытаетесь установить с помощью системы apt, используйте sudo apt-get install -f. -е Параметр попытается исправить систему, у которой нарушены зависимости, после чего вы сможете установить соответствующий пакет.
- Открыть Терминал нажав Ctrl, Alt а также T одновременно на клавиатуре.
- Введите sudo apt-get install -f и нажмите Войти выполнить это.
- Как только это будет сделано, введите sudo dpkg –configure -a, Нажмите Войти запустить его и запустить команда из шага 2 еще раз.
Метод 2: Используйте Aptitude
уместность является альтернативой APT-получить который вы можете использовать в качестве менеджера пакетов более высокого уровня. Вы можете использовать его, чтобы попробовать установить пакет вместе с ним, вместо apt-get, но сначала вам нужно установить уместность.
- Нажмите одновременно Ctrl, Alt, а также T клавиши на клавиатуре, чтобы открыть
- Введите sudo apt-get установить aptitude и нажмите Войти выполнить команду.
- Введите sudo aptitude устанавливает PACKAGENAME, где PACKAGENAME — это пакет, который вы устанавливаете, и нажмите Войти выполнить это. Это попытается установить пакет через aptitude вместо apt-get, что потенциально может решить проблему неудовлетворенных зависимостей.
Способ 3: убедитесь, что репозитории с ограничениями и юниверсами включены, и попробуйте лучший сервер
- Нажмите одновременно Alt а также F2 на вашем компьютере введите ПО-свойства-GTK и нажмите
- в Программное обеспечение Ubuntu убедитесь, что все репозитории (основной, вселенная, ограниченная, мультивселенная) включены.
- Нажмите на список серверов, где написано Скачать с, и выбрать
- Нажмите Выберите лучший сервер.
- Нажмите Alt, Ctrl а также T одновременно, чтобы открыть терминал, и введите sudo apt-get update, затем нажмите После завершения работы попробуйте установить программу еще раз.
Способ 4: очистить базу данных пакетов
Поврежденная база данных пакетов является потенциальной причиной неудовлетворенных зависимостей, а также неправильной установки пакетов. Однако очистка базы данных пакетов может исправить это, и вы можете сделать это с помощью двух команд, которые я объясню ниже. Прежде всего, однако, нажмите Ctrl, Alt а также T открыть терминал, и не забудьте нажать Войти после команды, чтобы запустить его.
- sudo apt-get clean очистит локальный репозиторий от всех извлеченных файлов пакетов (.deb). Он удалит все, кроме файлов блокировки, из / var / cache / apt / archives и / var / cache / apt / archives /partal /.
- sudo apt-get autoclean также очистит извлеченные файлы, но в отличие от предыдущей команды, эта команда удаляет только те пакеты, которые вы больше не можете загружать и которые практически бесполезны.
Метод 5: Удалите все удержанные пакеты
Удерживаемые пакеты на самом деле удерживаются, потому что существуют проблемы с зависимостями и конфликты, которые склонный не могу решить. Исключение таких пакетов означает, что таких конфликтов не будет, и, следовательно, может решить вашу проблему.
- Открыть Терминал нажав Ctrl, Alt а также T
- Введите sudo apt-get -u dist-upgrade и нажмите «Если есть какие-либо удерживаемые пакеты», он покажет их, и вы можете их устранить.
- Сначала попробуйте запустить
sudo apt-get -o Debug :: pkgProblemResolver = да dist-upgrade
и посмотреть, если это решит проблему. Если это выходит с Х не обновлен в конце, где X — количество удерживаемых пакетов, вам нужно будет удалить их один за другим.
- Чтобы удалить задержанный пакет, используйте sudo apt-get remove –dry-run PACKAGENAME (PACKAGENAME — это пакет, который вы пытаетесь удалить).-пробный прогон Параметр гарантирует, что вы будете в курсе всего, что происходит дальше. Когда вы удалили все пакеты, попробуйте сначала установить тот, который вызвал проблему, и посмотрите, что произойдет.
Способ 6: очистить / удалить / отключить PPA
Личные архивы посылок являются репозиториями, которые размещены на Launchpad и используются для обновления или установки пакетов, которые обычно не доступны в официальных репозиториях Ubuntu. Они чаще всего являются причиной неудовлетворенных зависимостей, особенно когда они используются для обновления существующего пакета из репозитория Ubuntu. Вы можете отключить, удалить или удалить их.
запрещать означает, что пакеты, установленные из этого PPA, больше не будут получать обновления.
- Нажмите одновременно Alt а также F2, и беги ПО-свойства-GTK.
- От Другое программное обеспечение На вкладке вы найдете две строки для каждого PPA, где одна для исходного кода, а другая для скомпилированного пакета. Чтобы отключить PPA, вы должны снимите обе строки
чистка означает, что все пакеты в выбранном PPA будут понижены до версии в официальных репозиториях, а также отключат PPA. Чтобы установить PPA Purge, вы можете использовать sudo apt-get установить ppa-purge, но учитывая, что склонный сломан, вы должны использовать эту команду в Терминале (Alt, Ctrl а также T одновременно Войти бежать):
MKDIR PPA-продувка cd ppa-purge wget http://mirror.pnl.gov/ubuntu/pool/universe/p/ppa-purge/ppa-purge_0.2.8+bzr56_all.deb wget http://mirror.pnl.gov/ubuntu//pool/main/a/aptitude/aptitude_0.6.6-1ubuntu1_i386.deb sudo dpkg -i ./*.deb
Далее беги sudo ppa-purge ppa: someppa / ppa для очистки выбранного PPA. Однако, поскольку PPA Purge по-прежнему не удаляет PPA, вы можете использовать приведенные ниже команды для удаления PPA. Не обращайте внимания на первое, если ваши намерения не включают удаление установленного пакета.
- sudo apt-get autoremove –purge PACKAGENAME
- sudo add-apt-repository — удалить ppa: someppa / ppa
- sudo apt-get autoclean
После этого вы сможете установить необходимый пакет.
Несмотря на то, что выше приведено довольно много методов, вы также должны знать, что всегда лучше предотвращать такие проблемы. Вы должны поддерживать свою систему в актуальном состоянии, использовать только надежные PPA и выполнять резервное копирование, когда все работает правильно, чтобы вы могли восстановить позже. Однако, если вы забыли заняться этими вещами, используйте описанные выше методы, чтобы решить вашу проблему, и используйте методы предотвращения, чтобы убедиться, что вы не
Источник