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

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

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

Обнаружена ошибка в системной программе

Сообщить о проблеме разработчикам?

System_Program_Problem_Detected

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

Что делать если возникла «обнаружена ошибка в системной программе»

Что это вообще значит?

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

Canonical использует специальную утилиту Apport, которая собирает данные об ошибках в системе и отправляет их разработчикам. Как только какая-нибудь программа в системе завершается с сигналом SIGSEGV,  SIGBUS, SIGFPE или другим, вызывающим ошибку, запускается демон Apport, собирает данные об ошибке и компьютере, затем создает crash файл в каталоге /var/crash. Информация из этого файла поможет разработчикам решить проблему. С другой стороны, когда в этом каталоге появляется новый файл, запускается графическая утилита, которая показывает информацию об ошибке и предложение отправить отчет разработчикам.

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

Как только я нажму сообщить о проблеме, она исчезнет?

Нет, не совсем. После того как вы нажмете на кнопку отправки отчета, вы получите следующее окно:

Ubuntu_Internal_error

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

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

А если я хочу сообщить разработчикам о проблеме?

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

Вы предлагаете не сообщать о проблеме?

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

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

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

Crash_reports_Ubuntu

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

sudo rm /var/crash/*

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

Отключение Apport в Ubuntu

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

Вы можете отключить только утилиту, которая показывает вам уведомления, но оставить службу, собирающую данные в /var/crash работающей. Для этого выполните:

gsettings set com.ubuntu.update-notifier show-apport-crashes false

Для полного отключения Apport откройте терминал и введите команду:

gksu gedit /etc/default/apport

Вот содержимое этого файла:

set this to 0 to disable apport, or to 1 to enable it
# you can temporarily override this with
# sudo service apport start force_start=1
enabled=1

Замените enable=1 на enable=0 и сохраните изменения. Теперь вы не увидите никаких отчетов о сбоях в программах. Программа не будет собирать отчеты об ошибках и вы о них никогда не узнаете. Если вы снова захотите видеть уведомления достаточно просто вернуть флаг enabled в положение 1.

Выводы

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

Источник перевода:

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

Кто не встречал ошибок в процессе обновления Ubuntu? Ошибки обновления в Ubuntu и иных дистрибутивах Linux встречаются часто и не вызывают удивления. В статье описан ряд часто встречающихся ошибок и способы их решения.

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

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

Если во время обновления системы появляются ошибки, паниковать не стоит. Ошибки случаются часто и решения есть. Вы научитесь как решить часто встречающиеся ошибки.

Ошибка 0: Failed to download repository information

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

Обычно так и происходит, но иногда можно увидеть подобную ошибку:

Failed to download repository information. Check your internet connection

Скорее всего ошибка покажется странной, так как интернет работает, но вас все равно просят его проверить.

Заметили, что я назвал ее “Ошибка 0”? Это потому что это по сути не ошибка. То есть, скорее всего, она не связана с подключением к интернету. Тем не менее помимо этого путающего сообщения больше информации нет.

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

Нам придется использовать командную строку. Для того чтобы ее быстро открыть можете воспользоваться сочетанием клавиш ctrl+alt+T. Исполните в ней данную команду:

sudo apt update

Дождитесь завершения процесса. Рассмотрите последние 3-4 строки вывода. Они покажут действительные причины ошибки sudo apt-get update. Вот пример:

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

Ошибка 1: Problem With MergeList

Когда вы запустите обновление в терминале, то можете увидеть ошибку “Problem With MergeList”:

E:Encountered a section with no Package: header,
E:Problem with MergeList /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_precise_universe_binary-i386_Packages,
E:The package lists or status file could not be parsed or opened.’

По какой-то причине файл в директории /var/lib/apt/lists сломался. Вы можете удалить все файлы в указанной директории и запустить обновление снова. Исполните указанные команды одна за другое:

sudo rm -r /var/lib/apt/lists/*
sudo apt-get clean && sudo apt-get update

Проблемы должны исчезнуть

Ошибка 2: Hash Sum mismatch

Вы можете встретиться с ошибкой “Hash Sum mismatch”. Ее решение аналогично тому, что мы написали выше.

W:Failed to fetch bzip2:/var/lib/apt/lists/partial/in.archive.ubuntu.com_ubuntu_dists_oneiric_restricted_binary-i386_Packages Hash Sum mismatch,
W:Failed to fetch bzip2:/var/lib/apt/lists/partial/in.archive.ubuntu.com_ubuntu_dists_oneiric_multiverse_binary-i386_Packages Hash Sum mismatch,
E:Some index files failed to download. They have been ignored, or old ones used instead

Скорее всего ошибка происходит из-за несовпадения на серверах кэша метаданных. Для исправления ситуации используйте данные команды:

sudo rm -rf /var/lib/apt/lists/*
sudo apt update

Ошибка 3: Failed to fetch with error 404 not found

Если вы попытаетесь добавить репозиторий, который недоступен в вашей текущей версии Ubuntu, то увидите ошибку 404 not found:

W: Failed to fetch http://ppa.launchpad.net/venerix/pkg/ubuntu/dists/raring/main/binary-i386/Packages  404  Not Found
E: Some index files failed to download. They have been ignored, or old ones used instead.

Вы добавили PPA в надежде установить приложение, но оно недоступно для вашей версии Ubuntu, и появилась ошибка. Вот почему следует заранее проверять доступно ли PPA для вашей версии Ubuntu или нет. Как удостовериться, что для вашей версии есть PPA, можно посмотреть здесь.

Так или иначе решением данной проблемы является удаление проблемной PPA из списка репозиториев. Название PPA вы найдете в сообщении об ошибке. Зайдите в средство Software & Updates:

Откройте Software & Updates

Здесь пройдите во вкладку Other Software и поищите PPA. Уберите галочку, чтобы PPA удалилась из системы.

Удалите PPA с помощью Software & Updates

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

Ошибка 4: Failed to download package files

Failed to download package files

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

Пройдите в Software & Updates там измените сменить сервер с которого происходит скачивание на main (основной):

Ошибка 5: GPG error: The following signatures couldn’t be verified

Добавление PPA может также привести к оповещению “GPG error: The following signatures couldn’t be verified” во время обновления:

W: GPG error: http://repo.mate-desktop.org saucy InRelease: The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY 68980A0EA10B4DE8

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

Данный ключ можно использовать так:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 68980A0EA10B4DE8

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

Ошибка 6: BADSIG error

Еще одна знаковая ошибка при обновлении Ubuntu — это “BADSIG error”, которая выглядит примерно так:

W: A error occurred during the signature verification. The repository is not updated and the previous index files will be used. GPG error: http://extras.ubuntu.com precise Release: The following signatures were invalid: BADSIG 16126D3A3E5C1192 Ubuntu Extras Archive Automatic Signing Key
W: GPG error: http://ppa.launchpad.net precise Release:
The following signatures were invalid: BADSIG 4C1CBC1B69B0E2F4 Launchpad PPA for Jonathan French W: Failed to fetch http://extras.ubuntu.com/ubuntu/dists/precise/Release

Все репозитории подписаны GPG, и по какой-то причине система считает их неверными. Необходимо обновить ключи подписей. Проще всего это сделать путем повторной генерации списка apt get (с ключами подписей) и он должен иметь верный ключ.

Используйте следующие команды одну за другой:

cd /var/lib/apt
sudo mv lists oldlist
sudo mkdir -p lists/partial
sudo apt-get clean
sudo apt-get update

Ошибка 7: Partial upgrade error

Обновление через терминал может привести к такому:

Not all updates can be installed
Run a partial upgrade, to install as many updates as possible

Для исправления ошибки исполните в терминале данную команду:

sudo apt-get install -f

Ошибка 8: Could not get lock /var/cache/apt/archives/lock

Данная ошибка происходит, когда еще одна программа использует APT. Допустим вы устанавливаете что-то через Ubuntu Software Center и в одновременно пытается запустить apt в терминале.

E: Could not get lock /var/cache/apt/archives/lock – open (11: Resource temporarily unavailable)
E: Unable to lock directory /var/cache/apt/archives/

Проверьте не использует ли apt другая программа. Это может быть команда в терминале, Software Center, Software Updater, Software & Updates или иной другой соф, который занимается установкой и удалением приложений.

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

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

sudo killall apt apt-get

Это хитрая проблема, так что придется попотеть. Если это не поможет, то рекомендуем эту статью.

Встречали ли вы другие ошибки при обновлении?

Так завершается обзор часто встречающихся ошибок при обновлении Ubuntu. Надеюсь данная статья поможет вам с ними справится.

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

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

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

Индекс

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

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

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

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

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

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

sudo apt update

o

sudo apt upgrade

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

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

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

sudo apt install -f

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

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

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

Descargar paquetes deb localmente

Теме статьи:

Как скачать пакеты DEB с зависимостями локально?

Второе решение, установка необходимых зависимостей

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

Например, в терминале нам показывают что-то вроде этого:

"Error: Dependency is not satisfiable: libgtk-3-0 (>=3.16.2)"

Следует отметить, что Это указывает на то, что выпуск «libgtk 3.0» больше или равен версии «3.16.2». за то, что мы должныs в этом случае загрузите версию указанной библиотеки. Здесь важно учитывать, что для библиотек многие приложения зависят от одной или определенной версии, поэтому лично я не советую вам сюда прикладывать руку.

Чтобы найти конкретную версию, мы можем положиться на страница пакетов ubuntu (packages.ubuntu.com) чтобы проверить, какая это версия Ubuntu и в каком репозитории, поскольку очень часто некоторые из них не включены.

Здесь вы можете скачать и установить нужные вам пакеты.

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

Третий и последний вариант. При распаковке необходимо изменить зависимости и переупаковку.

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

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

Итак мы собираемся распаковать пакет deb и изменить зависимости к той версии, которая у нас есть в системе (поэтому было важно отметить, какие зависимости конфликтуют с конкретной версией).

Для этого мы наберем команду:

dpkg-deb -R “ruta-de-paquete-deb” “nombre-de-carpeta-que-tendra-los -archivos”

Например:

dpkg-deb -R gimp.deb Gimp

Мы собираемся получить доступ к папке и идем по маршруту «/ ДЕБИАН»

cd Gimp/DEBIAN

И мы собираемся редактировать файл «control» с нашим любимым редактором

sudo gedit control

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

Например, мы найдем что-то вроде этого:

Package: XXXX

Version: XXXX

Depends: libgtk3-0 (>= 3.16.xx"

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

dpkg-deb -b Gimp Gimp-new.deb

И для установки создается новый пакет deb.

Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.

Вы можете быть заинтересованы

Как исправить ошибку в системной программе Ubuntu?

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

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

Сообщение об обнаружении ошибки в системной программе Ubuntu

Для исправления ошибки предлагается запустить менеджер пакетов из меню Система — Администрирование. Также, сообщается, что ошибка кроется в открытии временных файлов и, обычно, это означает наличие неразрешённых зависимостей в установленных пакетах. Данное сообщение, вероятно, посылает программа управления обновлениями и репозиториями software-properties-gtk, которая запускается щелчком по иконке «Параметры».

Ошибка программы обновления software-properties-gtk в Ubuntu

При попытке найти дополнительные драйверы происходит ошибка. В заголовке (Title) ошибки написано, что software-properties-gtk закрылся из-за системной ошибки E: списки пакетов или файл состояния не могут быть открыты или прочитаны (E:The package lists or status file could not be parsed or opened).

Ошибка программы обновления software-properties-gtk в Ubuntu

Также, программа Update-manager, с помощью которой можно проверить наличие доступных обновлений приложений, расположенная в меню Система — Обновление приложений, закрывается из-за ошибки.

Приложение Software Updater на Ubuntu внезапно закрылось из-за ошибки

В выделенном заголовке ошибки написано, что update-manager, точно также как и software-properties-gtk закрылся из-за системной ошибки E: списки пакетов или файл состояния не могут быть открыты или прочитаны (E:The package lists or status file could not be parsed or opened).

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

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

Ошибка, при запуске менеджера пакетов Synaptic в Ubuntu

Запустить Synaptic не удалось, из-за ошибки:

E: Encountered a section with no Package: header
E: Problem with MergeList /var/lib/apt/lists/
ua.archive.ubuntu.com_ubuntu_dists_trusty_main_i18n_Translation-ru%5fRU
E: Невозможно открыть или обработать файл состояния или списки пакетов.
E: _cache->open() failed, please report.

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

sudo apt-get install -f

выдаёт аналогичную ошибку:

Ошибка команды sudo apt-get install -f в терминале Ubuntu

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

Для исправления ошибки

E: Encountered a section with no Package: header
E: Problem with MergeList /var/lib/apt/lists/
ua.archive.ubuntu.com_ubuntu_dists_trusty_main_i18n_Translation-ru%5fRU

удалил проблемный файл, выполнив в терминале команду

sudo rm /var/lib/apt/lists/ua.archive.ubuntu.com_ubuntu_dists_trusty_main_i18n_Translation-ru%5fRU

После удаления данного файла и перезагрузки системы, вновь появилось сообщение об ошибке в системной программе, но Центр приложений Ubuntu, менеджер пакетов Synaptic программа обновления приложений Update-manager и программа управления обновлениями и репозиториями software-properties-gtk запускаются и функционируют. Далее, с помощью утилиты
Ubuntu Tweak удалил ненужные пакеты, ядра и очистил кэш. После перезагрузки системы, появилось всё тоже окно с сообщением об ошибке в системной программе. Обновив программное обеспечение компьютера с помощью менеджера обновления приложений update-manager и снова перезагрузив систему, окна с сообщением об ошибке уже небыло.

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

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

How to Fix Unmet Dependencies Error on Ubuntu

Error The following packages have unmet dependencies has plagued Ubuntu users for a while now, and there are more and more sightings of the error on various versions of Ubuntu. The APT package management system is easy to use, but in some occasions, such as when you’re mixing in third-party dependencies, you might get this error from apt-get.

This happens when you try to install something with the apt system via a terminal, and the installation fails with no obvious problem whatsoever. This issue isn’t limited to any one particular program, but it might happen with quite a few of them. This is because the issue lies in the apt system, and not in the program you’re installing.

There are fortunately quite a few solutions for this, some of which are easier to do, and others more difficult, but if you follow the instructions in the methods below, you will get rid of the error in no time.

Note: Before proceeding with any of the methods, it is advisable that you back up configurations files such as so you can revert back any changes in case something goes wrong. This is done by using the following steps:

  1. Press simultaneously the Alt, Ctrl and T on your keyboard to open a Terminal.
  2. Type in and press Enter.
  3. When the previous command finishes running, type in sudo cp /var/lib/dpkg/status /var/lib/dpkg/status.original and press Enter again.

Method 1: Use the -f parameter

This is the easiest one to try, and only requires adding two more letters to the command that you’re typing. Instead of using sudo apt-get install PACKAGENAME, where PACKAGENAME is the package you’re trying to install with the apt system, use sudo apt-get install -f. The -f parameter will attempt to correct a system which has broken dependencies, after which you’ll be able to install the package in question.

  1. Open a Terminal by pressing Ctrl, Alt and T simultaneously on your keyboard.
  2. Type in sudo apt-get install -f and press Enter to execute it.
  3. Once it’s done, type in sudo dpkg –configure -a, press Enter to run it, and run the command from step 2 once more.

Method 2: Use Aptitude

Aptitude is an alternative of apt-get which you can use as a higher-level package manager. You can use it to try and install your package with it, instead of apt-get, but first you need to install aptitude.

  1. Press simultaneously the Ctrl, Alt, and T keys on your keyboard to open a
  2. Type in sudo apt-get install aptitude and press Enter to execute the command.
  3. Type in sudo aptitude install PACKAGENAME, where PACKAGENAME is the package you’re installing, and press Enter to execute it. This will try to install the package via aptitude instead of apt-get, which should potentially fix the unmet dependencies issue.

Method 3: Make sure that the restricted and universe repositories are enabled and try a better server

  1. Press simultaneously Alt and F2 on your computer, type in software-properties-gtk and press
  2. In the Ubuntu Software tab, make sure that all the repositories (main, universe, restricted, multiverse) are enabled.
  3. Click the list of servers where it says Download from, and choose
  4. Click Select Best Server.
  5. Press Alt, Ctrl and T simultaneously to open a Terminal, and type in sudo apt-get update, then press Once it’s done running, try installing the software again.

Method 4: Clean the package database

A corrupted package database is a potential cause for unmet dependencies, as well as packages not installing properly. However, cleaning the package database can fix this, and you can do it with two commands, which I will explain below. First of all, however, press Ctrl, Alt and T to open a Terminal, and don’t forget to hit Enter after the command in order to run it.

  1. sudo apt-get clean will clean the local repository from all the retrieved package files (.deb). It will remove everything except the lock files from /var/cache/apt/archives, and /var/cache/apt/archives/partial/.
  2. sudo apt-get autoclean will also clean up the retrieved files, but unlike the previous command, this one only removes packages that you can no longer download and are pretty much useless.

Method 5: Eliminate any held packages

Held packages are actually held because there are dependency problems and conflicts which apt can’t solve. Eliminating such packages means that there won’t be any such conflicts, and may consequently fix your issue.

  1. Open a Terminal by pressing Ctrl, Alt and T
  2. Type in sudo apt-get -u dist-upgrade and press If there are any held packages, it will show them, and it is yours to eliminate them.
  3. First try running

sudo apt-get -o Debug::pkgProblemResolver=yes dist-upgrade

and see if it fixes the issue. If it exits with X not upgraded at the end, where X is the number of held packages, you will need to delete them one by one.

  1. To remove a held package, use sudo apt-get remove –dry-run PACKAGENAME (PACKAGENAME is the package you’re trying to remove). The –dry-run parameter makes sure you are informed of whatever happens next. When you’ve removed all packages, try installing the one that caused the problem in the first place, and see what happens.

Method 6: Purge/Remove/Disable PPAs

Personal Package Archives are repositories that are hosted on the Launchpad, and are used to upgrade or install packages that aren’t usually available in the official repositories of Ubuntu. They’re most commonly a cause of unmet dependencies, especially when they’re used to upgrade an existing package from the Ubuntu repository. You can either disable, remove or purge them.

Disable means that packages installed from that PPA will no longer get updates.

  1. Press simultaneously Alt and F2, and run software-properties-gtk.
  2. From the Other Software tab, you will find two lines for every PPA, where one is for the source, and another for the compiled package. To disable a PPA, you should uncheck both lines.

Purge means that all packages in the selected PPA will be downgraded to the version in the official repositories, and will also disable the PPA. To install PPA Purge, you could use sudo apt-get install ppa-purge, but considering that the apt is broken, you should use this command in the Terminal (Alt, Ctrl and T simultaneously, then Enter to run):

mkdir ppa-purge && 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

Next, run sudo ppa-purge ppa:someppa/ppa in order to purge the selected PPA. However, since PPA Purge still doesn’t remove a PPA, you can use the commands below to remove the PPA. Ignore the first one if your intentions don’t include removing the installed package.

  1. sudo apt-get autoremove –purge PACKAGENAME
  2. sudo add-apt-repository –remove ppa:someppa/ppa
  3. sudo apt-get autoclean

You should be able to install the necessary package afterwards.

Even though there are quite a few methods above, you should also know that it’s always better to prevent such issues. You should keep your system up-to-date, only use trusted PPAs, and back up when everything is working properly so you can restore later. However, if you’ve forgotten to do these things, use the methods above to fix your issue, and use the prevention methods to make sure you don’

«Packages have unmet dependencies» but I don’t want to install these packages anymore. How do I clean this?

I don’t want to install these packages anymore (they are not compatible with my graphics unit). And so I do not need to install their dependencies using apt-get -f install (as it is suggesting).

What is the way to get rid of these packages and this unmet dependency problem? (I tried apt-get autoclean && apt-get autoremove ).

4 Answers 4

The best way to remove such unmet dependencies that you do not want to satisfy is to use:

Purge ensures that any configuration files in relation to the package are deleted as well. In short, purge would remove anything in relation to the package—and you would be rid of the unmet dependency problem.

At first sight, I would say that the packages are installed.

So if you don’t want them anymore, just remove them:

(Maybe with a -f flag to pass the dependency check.)

Just remove the install-info package.

After two days of «computer hell», I finally got the answer. It wasn’t easy! Uninstall it from synaptic package manager, or from terminal.

I recently upgraded from Xubuntu 14.04 to 14.10, then immediately to 15.04.

BOTH TIMES I got the «unmet dependencies» and «held broken packages» errors and had to remove the install-info package. (Glad it wasn’t a System file.)

It’s an absolute curse to Linux! I don’t know which is worse; fixing a rootkit in Windows, or finding this bug in Ubuntu!

Понравилась статья? Поделить с друзьями:
  • Хрипит микрофон как исправить
  • Как найти скорость шара на нити
  • Как найти луч у треугольника
  • Как найти недошедшее письмо
  • Как найти телефон с помощью блютуз