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

Обновлено: 07.07.2024

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

В этой статье мы узнаем, как исправить отсутствующие зависимости и поврежденные пакеты с помощью команды apt-get. Обратите внимание, что мы выполнили команды и процедуры, упомянутые в этой статье, в системе Debian 10. Ту же процедуру можно выполнить в Ubuntu и более ранних версиях Debian.

Мы будем использовать Терминал командной строки для опробования решений и устранения проблемы. Чтобы открыть приложение «Терминал» в Debian, нажмите супер-клавишу на клавиатуре и найдите его с помощью появившейся панели поиска. Когда появится результат поиска, щелкните значок терминала, чтобы открыть его.

Использование apt-get для исправления отсутствующих и поврежденных пакетов

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

Способ 1

Используйте параметр «fix-missing» с «apt-get update», чтобы запустить обновления и убедиться, что пакеты обновлены и нет новой версии. доступно для пакетов.


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


Еще один подход к решению проблемы с неработающими пакетами с помощью apt-get заключается в редактировании файла «/etc/apt/sources/list» и добавлении сайтов с более новыми версиями доступных пакетов. Затем запустите команду «apt-get update», чтобы обновить список репозиториев.

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

Другие методы

Способ 1:

В этом методе мы будем использовать «apt-get autoremove» и «dpkg», чтобы исправить отсутствующие зависимости и поврежденные пакеты.

<р>1. Обновите индекс репозитория, выполнив следующую команду в Терминале:

<р>2. Затем выполните приведенную ниже команду, чтобы очистить локальный репозиторий:

<р>3. Выполните приведенную ниже команду, чтобы удалить все ненужные пакеты, которые больше не нужны:

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


<р>4. Затем попробуйте выполнить приведенную ниже команду в Терминале, чтобы принудительно удалить поврежденный пакет:

Метод 2:

В следующем методе мы будем использовать команду «dpkg—configure», чтобы исправить отсутствующие зависимости и поврежденные пакеты.

Dpkg — это инструмент управления пакетами, который можно использовать для установки, удаления и управления пакетами. Подобно apt-get, он также может помочь исправить сломанные пакеты и отсутствующие зависимости. Если вы получаете какие-либо ошибки при установке или обновлении пакетов, попробуйте следующее решение с помощью dpkg:

<р>1. Выполните приведенную ниже команду в Терминале, чтобы перенастроить все частично установленные пакеты.


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


<р>2. Выполните приведенную ниже команду в Терминале, чтобы удалить ошибочный пакет.

<р>3. Затем используйте приведенную ниже команду, чтобы очистить локальный репозиторий:

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

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

Об авторе

Карим Буздар

Карим Буздар имеет степень инженера в области телекоммуникаций и несколько сертификатов системного администратора. Как ИТ-инженер и технический автор, он пишет для различных веб-сайтов. Он ведет блог на LinuxWays.

APT — одна из самых популярных программ в Ubuntu/Debian и их производных. Он создан для управления установкой и удалением пакетов. Большую часть времени приложение работает без нареканий. Но в редких случаях вы можете увидеть всплывающее сообщение об ошибке «Невозможно исправить проблемы, у вас есть поврежденные пакеты». Эта ошибка, наряду с «apt-get : команда не найдена», являются двумя наиболее популярными сообщениями об ошибках, когда речь идет о apt или apt-get в Linux.

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

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

Сообщение об ошибке может выглядеть примерно так:

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

Например, для правильной работы медиаплееру VLC требуются libavcodec, libavutil, libgles2 и целый ряд других пакетов. Эти небольшие библиотеки и программные компоненты называются зависимостями. Эти зависимости могут не быть частью самого пакета приложения, но предполагается, что они либо уже установлены в вашей системе, либо установлены во время установки приложения.

Ошибка «Невозможно исправить проблемы, у вас есть поврежденные пакеты» обычно сопровождается другой информацией о том, какие библиотеки/программы необходимо установить, но система не может их установить. В приведенном выше сообщении это python-pip-whl.

Ситуация может усложниться, если двум программам, скажем, VLC и Gnome Video Player, нужны разные версии одной и той же библиотеки. В этом случае APT не сможет понять, как установить обе версии, и выдаст ошибку «Невозможно исправить проблемы, у вас есть поврежденные пакеты».

Исправить ошибку «Не удалось исправить проблемы, у вас есть поврежденные пакеты»

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

Обновить локальный индекс пакетов

Если вы устанавливаете известное программное обеспечение, велика вероятность того, что оно было тщательно протестировано первоначальными разработчиками, а также командой Ubuntu/Debian перед добавлением в каталог пакетов. Другими словами, специалисты по сопровождению позаботились о том, чтобы программное обеспечение работало с системой безупречно, поэтому обновление локального индекса пакетов — популярный способ избавиться от ошибки «сломанные пакеты».

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

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

Удалите оставшиеся пакеты из вашей системы

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

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

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

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

Вы можете использовать apt search для поиска проблемной зависимости в индексе пакета.

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

На этом этапе вы можете столкнуться с цепочкой зависимостей. По сути, программное обеспечение A зависит от B, затем B зависит от C, но C недоступно для вашей версии дистрибутива.

Также может случиться так, что когда вы пытаетесь установить пакет C, он уже установлен. В этом случае проверьте версию пакета C. Это та же версия, что требуется для пакета B? Если да, то может помочь удаление C и повторная установка.

Напрямую установить из файла DEB

Если отсутствующая зависимость не может быть найдена с помощью apt search , вы можете попробовать установить либо пакет, либо его зависимость непосредственно из файла DEB.

Например, в выводе apt-get видно, что одним из многих пакетов, необходимых FFMPEG, является libavcodec58 версии 4.1.6-1~deb10u1.

После этого просто переустановите проблемный пакет.

Найти другой источник установки или PPA

Если вы пытаетесь установить устаревшие пакеты, часто возникает ошибка "Невозможно исправить проблемы, у вас есть поврежденные пакеты". В этом случае установка отдельных зависимостей может быстро стать неудобной. Лучше всего в этой ситуации найти другой источник установки, обычно PPA.

Предположим, вы пытаетесь установить FFMPEG 4. Выполнив быстрый поиск, вы легко найдете PPA Джонатона Ф. Вы можете просто добавить его PPA в свою систему перед повторным запуском apt-get install ffmpeg для установки программного обеспечения.

В качестве альтернативы вы можете попробовать поискать такое же программное обеспечение в других форматах, таких как Snap/Flatpak или AppImage.

Если вы видите ошибку задержанного сломанного пакета во время обновления, попробуйте это

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

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

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

Если вы видите, что какой-либо пакет не обновляется, вы можете либо удалить его ( sudo apt-get remove ), либо отменить его с помощью следующей команды

Пакет будет разблокирован, и будет возвращено подтверждающее сообщение: Отменено удержание пакета имя_пакета. .

Заключение

Для этой проблемы нет прямого решения. Вам придется исследовать проблему самостоятельно и посмотреть, можно ли исправить ошибку или нет. Если вы считаете эту статью полезной, ознакомьтесь с другим нашим руководством по устранению ошибки «apt-get : command not found» — еще одного популярного сообщения об ошибке apt-get, которое вызвало недоумение у наших читателей.

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

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

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

Вывод команд:

После запуска:

Может помочь, если вы покажете нам команду, которую на самом деле пытаетесь выполнить (например, sudo apt-get install ia32-libs ), и вывод этой команды. Кроме того, показывает ли sudo apt-get dist-upgrade доступные обновления?

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

Возможно, есть пакеты, мешающие правильной работе диспетчера пакетов, которые указаны в строке ошибки вашего терминала (в этом случае: git-man является зависимостью для git). sudo apt-get удалить git-man, затем sudo apt-get очистить git-man, затем sudo apt-get установить git. Он снова установил git-man, и все работает.

Я совершенно неверно истолковал значение фразы "у вас есть сломанные посылки". Это не значит, что я сделал что-то, чтобы удержать посылку, как я сначала подумал. (Я работал не в интерактивном режиме с -y, поэтому не знал, какие вопросы могут быть заданы.) Это означает, что менеджер пакетов содержит пакет, который не может быть установлен, потому что он поврежден. .

14 ответов 14

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

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

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

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

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

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

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


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

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

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

Спасибо, @sushilinux. Этот совет помог мне определить проблему, с которой я столкнулся, а также фактическое значение фразы «у вас есть сломанные посылки».

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

То, что помогло исправить это для меня, было простым

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

Это сработало для меня. Я пытался удалить VLC каждую ночь и установить стабильную версию. Но ночная версия осталась из неиспользуемых библиотек. Это противоречило зависимостям стабильной версии.

Сообщение об ошибке «Невозможно исправить проблемы, у вас есть поврежденные пакеты» часто появляется из-за того, что вы пытаетесь установить или установили пакет, который вы не должны устанавливать. Вот несколько быстрых и простых способов исправить ошибку «У вас есть поврежденные пакеты».

Если вы вручную загрузили файл .deb, имитируйте его установку, запустив apt install --simulate ./downloaded-deb-file.deb . Если скачанный-deb-file.deb не может быть установлен из-за неудовлетворенных зависимостей, в результатах apt install --simulate ./downloaded-deb-file.deb будут перечислены эти неудовлетворенные зависимости. Поскольку команда является симуляцией, вам не нужно и не следует использовать sudo или запускать ее от имени пользователя root. Обратите внимание на требования к версии для каждой неудовлетворенной зависимости и найдите в Интернете файлы .deb, соответствующие этим требованиям к версии. Если вы нашли файл .deb, который соответствует требованиям к версии, загрузите его и запустите apt install --simulate ./new-downloaded-deb-file.deb, чтобы проверить, есть ли у только что загруженного файла .deb собственные неудовлетворенные зависимости. .

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

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

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

показать неработающие пакеты в Synaptic

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

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

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

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

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

Как исправить сломанные пакеты в Ubuntu

  • Учетная запись с правами sudo
  • Система Ubuntu

Проверить наличие обновлений

Начните устранение неполадок, перестроив список зависимостей. Параметр --fix-missing указывает APT игнорировать отсутствующие пакеты. Этот параметр гарантирует, что процесс обновления будет выполнен без возврата APT ошибки.

Опция --fix-missing указывает APT игнорировать отсутствующие пакеты

Заставить APT исправлять отсутствующие зависимости или поврежденные пакеты

Частой причиной ошибок, связанных с пакетами, являются отсутствующие зависимости пакетов.

<р>1. Используйте apt install с флагом -f, чтобы указать APT найти отсутствующие пакеты и установить их.

APT перечисляет отсутствующие пакеты в вашей системе.

Apt install указывает APT найти отсутствующие пакеты и установить их

<р>2. Нажмите ENTER, чтобы начать установку.

Принудительная перенастройка или удаление поврежденных пакетов с помощью DPKG

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

<р>1. Перенастройте DPKG, базовую систему управления пакетами, с помощью следующей команды:

<р>2. Проверьте, не пометил ли DPKG некоторые пакеты как требующие переустановки.

<р>3. Если приведенная выше команда возвращает список из одного или нескольких пакетов, попробуйте удалить пакеты, набрав:

В приведенном ниже примере показано, как удалить поврежденный пакет vlc-plugin-base.

Удалить поврежденный пакет vlc-plugin-base

Предупреждение. Команда dpkg --purge --force-all удаляет пакет, даже если удаление вызывает дальнейшие проблемы с зависимостями. Используйте команду с осторожностью.

<р>4. После устранения неполадок выполните следующую команду, чтобы очистить систему:

<р>5. Затем снова обновите репозитории:

Устранение проблемы с блокировкой DPKG

Ошибка блокировки DPKG появляется при попытке установить пакет, когда другой процесс использует DPKG.

Ошибка блокировки DPKG появляется при попытке установить пакет, когда другой процесс использует DPKG

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

<р>1. Чтобы решить эту проблему, удалите файл блокировки вручную:

<р>2. Также снимите блокировку в кеше:

Удаление блокировки позволяет снова использовать APT и DPKG.

В статье представлены распространенные способы решения проблем, вызванных неисправными пакетами в Ubuntu.

Для получения дополнительной информации об управлении пакетами в Ubuntu прочитайте:

Марко Алексич — технический писатель в phoenixNAP. Его врожденное любопытство ко всему, что связано с ИТ, в сочетании с более чем десятилетним опытом написания, преподавания и работы в областях, связанных с ИТ, привело его к техническому письму, где у него есть возможность применить свои навыки и сделать технологии менее пугающими для всех.

Используйте параметры в этом руководстве, чтобы устранить ошибку Ubuntu «Не удалось получить блокировку…». Это сообщение сообщает, что dpkg, служба диспетчера пакетов Debian, недоступна.

Это руководство поможет вам решить проблему, из-за которой dpkg вернул ошибку с кодом ошибки (1). Он охватывает несколько возможных решений, от простых решений до более сложных процессов.

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

Как и многие другие пользователи Ubuntu, вы, возможно, задавались вопросом: в чем разница между apt-get и apt? Или, возможно, — когда использовать apt-get и когда apt? Эта статья отвечает на вопрос.

Читайте также: