Apt fix broken install не работает

Ошибка при установке/удалении любого пакета

Вчера хотел поставить Screenlets, инструкцию брал с этого сайта

Сама программа установилась, но после нее линукс вообще ничего не хочет устанавливать, удалять, и вообще как то взаимодействовать с пакетами. Допустим, я хочу установить пакет Conky:

Если я захочу еще что-то сделать, то будет та же ошибка. Можно ли как то исправить?

UPD: Я пробывал исполнять команды по типу «sudo apt-get -f install, sudo apt-get clean etc…». Они не помогли

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

Вполне ожидаемая реакция, после установки «из левых источников».

Иногда можно. И тебе даже посдказали как:

Неудовлетворённые зависимости. Попытайтесь выполнить «apt –fix-broken install», не указывая имени пакета

Вполне ожидаемая реакция, после установки «из левых источников».

Apt настолько кривой, что полностью ломается от установки не утверждённых партией пакетов? А ещё это свободой называют…

«Опыт — единстенное, что получаешь, когда ничего не получается.»

пробывал исполнять команды по типу «sudo apt-get -f install, sudo apt-get clean etc…». Они не помогли

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

«Иногда можно. И тебе даже посдказали как»

я уже пытался выполнить apt –fix-broken install. Без результатов

В общем как я понял, лучше не парится, и просто переустановить ось?

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

dpkg -r conky; dpkg –configure -a; apt update;

Забей на коньки. Руководствуйся лозунгом – если в линукс что-то не получается, значит это не нужно.

удаляй Screenlets и все пакеты, которые оно притянуло или которые ты поставил принудительно (типа libpng12-0)

ничто не устоит перед настойчивым пользователем

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

Тут ещё хвалят NixOS где подобные проблемы также невозможны. В RPM вроде бы есть история изменения активации и можно отменить изменения. Получается что APT — самая кривая система управления пакетами в *NIX.

Apt настолько кривой, что полностью ломается от установки не утверждённых партией пакетов? А ещё это свободой называют…

Свободой это называли 20 — 10 лет назад. Теперь наиболее подходящее определение — цифровой ГУЛАГ.

Капец ты лох и неосилятор.

Нет, просто удовлетвори зависимости. Двигайся по цепочке и найди проблемный.

screenlets ты удалил?

В арче/манжаро таких проблем нет. И rpm-based дистры тоже обладают более устойчивой пакетной системой.

Палишься там libpng16 по стандарту партии хитрых отвергнувших программы на qt4

Короче, ты что-то навертел и у тебя теперь dependency hell. Это исправимо, но займет какое-то время. Переустановка не нужна, apt на самом деле очень устойчив, просто такие вещи требует ручного разбора.

Начнем со сбора и анализа данных, я помогу. Выполни команды

В Haiku сломать пакетную систему невозможно в принципе

как бы и тут нет сломанного apt, он наоборот, противостоит ломающему пользователю. Есть проблема с зависимостями, которую:

Файл проблемного пакета можно просто удалить.

можно решить этим же способом, apt remove . вполне должен сработать. Но ТС этого не сделал и хочет невозможного для apt — иметь пакеты от дважды/трижды предыдущей версии дистрибутива и возможность обновляться или ставить новый софт с пересечениям по зависимостям.

В RPM вроде бы есть история изменения активации и можно отменить изменения.

Получается что APT — самая кривая система управления пакетами в *NIX.

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

Читайте также:  Как настроить нокиа е72

Источник

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

После обновления с 10.04 до 12.04 я пытаюсь установить разные пакеты. Например, ia32-libs и skype (4.0).

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

После запуска этого:

7 ответов

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

Вы можете получить список фактически удерживаемых пакетов с:

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

Другой способ устранения неполадок может заключаться в использовании aptitude вместо apt-get для установки вашего пакета:

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

Иногда aptitude будет слишком стремиться удалить или понизить количество больших пакетов, чтобы удовлетворить ваш запрос, и в этом случае повторите попытку с -f меняет свои приоритеты и помогает ему находить решения, которые включают удаление / понижение версии меньшего количества пакетов, даже если это означает, что не все запрошенные изменения могут быть выполнены:

Это случилось со мной тоже. Все, что я сделал, было sudo apt-get update и это решило мою проблему. Удачи.

Я столкнулся с подобным сценарием относительно отсутствующих зависимостей. В моем случае я пытался установить curl на Ubuntu Saucy Salamander 13.10.

Ошибка указала, что для зависимости требовалась более ранняя версия библиотеки curl3.

Я смог перейти на более раннюю версию, пытаясь установить curl с помощью aptitude.

Когда он отметил отсутствующую зависимость и причину (требовалась более ранняя версия файла библиотеки), он дал мне несколько вариантов ответа. y / / n / q

Y прервал бы установку, N искал бы другую опцию, а Q просто завершил бы работу и больше ничего не делал, оставив поврежденный пакет.

Я выбрал N , и это дало мне возможность понизить файл библиотеки до более ранней версии. Так вот что я сделал, и curl закончил установку без ошибок.

  • Я могу посмотреть на обновление файла библиотеки еще раз после установки, но пока все хорошо.

У меня был похожий сценарий в новой установке 14.04, без файлов, перечисленных в dpkg —get-selections | grep hold и без радости после sudo apt-get update ,

Что это исправило для меня было просто

Когда я попытался переустановить сбойный пакет, он работал нормально. Ура!

Возникла та же проблема, я запустил команду проверки пакета из другого ответа ( dpkg —get-selections | grep hold ) И пила

так я и использовал apt-get remove tomcat7-common «

Затем я мог установить Tomcat 6 (я удалял Tomcat 7 и устанавливал Tomcat 6, как и вы).

Я испробовал все методы, упомянутые на этой странице. Как-то у меня не вышло.

Вот как я это исправил: Отследите сломанный пакет и переустановите его.

Я пытаюсь установить aptitude .

Не удалось установить libcwidget3v5

sudo apt установить libcwidget3v5

Попробуйте установить libncursesw5

sudo apt установить libncursesw5

Попробуйте установить libtinfo5

sudo apt установить libtinfo5

Бинго, этот парень виноват libtinfo5 , он уже там, удалите и переустановите.

Удалить или очистить libtinfo5 .

apt purge libtinof5 было бы лучше, так как он также удаляет файлы конфигурации.

Переустановить libtinfo5 еще раз

sudo apt установить libtinfo5

Теперь попробуйте установить aptitude

Вот несколько быстрых и простых способов исправить you have held broken packages ошибка.

Откройте ваш файл sources.list в /etc/apt/sources.list и убедитесь, что нет никаких программных источников для выпуска Ubuntu, отличного от выпуска Ubuntu, который вы используете в настоящее время. Если вы обнаружите какие-либо неправильные строки релиза в sources.list, откройте файл sources.list с помощью sudoedit /etc/apt/sources.list , закомментируйте неправильные строки в sources.list, поставив перед ними # сохраните файл sources.list и запустите sudo apt update обновить список доступных пакетов программного обеспечения.

Читайте также:  Не работает роутер мегафон причины

Выберите опцию » Исправить сломанные пакеты» в диспетчере пакетов Synaptic. Выполните следующие команды для установки Synaptic.

Откройте Synaptic и в Synaptic выберите » Правка» -> » Исправить сломанные пакеты», а затем повторите » Правка» -> » Исправить сломанные пакеты» еще раз.

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

Выберите сломанные пакеты по одному. Выберите сломанный пакет, а затем откройте терминал и запустите apt policy

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

Источник

Неудовлетворенные зависимости 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

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

Читайте также:  То работает то не работает спидометр фф2

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

Источник

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