Во время установки программ с помощью пакетного менеджера apt в любом из дистрибутивов, использующих этот пакетный менеджер, вы можете столкнуться с ошибкой, что у вас зафиксированы сломанные пакеты. Это пакеты, которые не установились полностью потому что им не хватает зависимостей или процесс установки был по какой-либо причине прерван.
В этой статье мы рассмотрим что делать с такой ошибкой, как её исправить, а также я дам ссылки на другие материалы на сайте, которые помогут справится с проблемой.
Как исправить у вас зафиксированы сломанные пакеты?
1. Обновите списки пакетов
Возможно вам не удалось установить нужные пакеты потому что списки репозиториев устарели, и там ещё не было нужных пакетов. Для обновления списка пакетов выполните:
sudo apt update --fix-missing
2. Установите битые пакеты
После обновления списка пакетов из репозиториев может помочь установка битых пакетов. Этот шаг поможет особенно если вы устанавливали пакет с помощью dpkg и теперь нужно доустановить его зависимости с помощью пакетного менеджера. Для этого есть специальная команда:
sudo apt install -f
3. Очистите лишние пакеты
Установке могут мешать лишние пакеты, которые больше не нужны в системе. Для их удаления выполните:
sudo apt clean
Затем:
sudo apt autoremove
Утилита отобразит список всех битых пакетов, которые не установлены, вы можете попытаться их удалить с помощью команды:
sudo dpkg --remove -force --force-remove-reinstreq имя_пакета
4. Используйте dpkg
Вместо apt вы можете использовать команду dpkg чтобы посмотреть какие пакеты вызывают проблему. Просто выполните:
sudo dpkg --configure -a
Команда покажет проблемные пакеты, а потом вы сможете их удалить той же командой:
sudo dpkg --remove -force --force-remove-reinstreq имя_пакета
5. Разрешите зависимости
Битые пакеты чаще всего появляются из-за того, что пакетный менеджер не может найти для них нужные зависимости. Если вам всё же очень нужно установить такой пакет, просто разрешите эти зависимости. Для этого можно скачать и установить их вручную или если вы уверенны, что зависимости в пакете указаны неверно, можно скачать его распаковать и удалить мешающие зависимости. Подробнее об этом читайте в этой статье.
Выводы
В этой небольшой статье мы рассмотрели что делать если в вашей системе появились битые пакеты и как их исправить. Здесь решение проблемы очень сильно зависит от вашей ситуации, но здесь приведены основные варианты решения, которые должны помочь вернуть пакетный менеджер к работе. Иногда рекомендуют удалить пакет вручную из базы данных dpkg /var/lib/dpkg/status, однако лучше этого не делать и найти путь решить проблему по другому, ручное редактирование подобных файлов может создать ещё больше проблем.
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна .
Об авторе
Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.
- Печать
Страницы: [1] 2 Все Вниз
Тема: Ошибки при установке пакетов (Прочитано 3071 раз)
0 Пользователей и 1 Гость просматривают эту тему.
McDakk
В Ubuntu Software не устанавливаются пакеты. Также не устанавливаются обновления приложений.
В первом случае кнопка «Установить» ничего не делает. Просто нажимаешь, появляется шкала прогресса буквально на секунду и снова кнопка установить.
Во втором случае ошибка «Не удалось закачать файлы пакета. Проверьте интернет-соединение.».
В списке репозиториев отмечены все источники, но при подтверждении и выхода из тех настроек тоже ошибка — «Ошибка при загрузке информации об источниках приложений. Проверьте интернет-соединение.»
Вот, если нужен, часть вывода команды sudo apt-get update
Вот к примеру я пытался поставить пакет xchat, чтобы получить помощь:
ecc83
Покажите:
cat /etc/apt/sources.list
McDakk
ecc83,
Пользователь добавил сообщение 09 Июля 2018, 13:17:20:
ecc83, у меня также не устанавливаются скачанные deb пакеты, то есть я думаю дело не только в репозиториях
« Последнее редактирование: 09 Июля 2018, 13:17:20 от McDakk »
ARTGALGANO
zesty — 17.04 — подержка уже закончилась.
не устанавливаются скачанные deb
на что ошибки?
McDakk
ecc83, ARTGALGANO,
на что ошибки?
в смысле?
Пользователь добавил сообщение 09 Июля 2018, 13:25:42:
подскажите просто пожалуйста, что мне сделать, чтобы все снова работало
AnrDaemon
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.
Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…
McDakk
AnrDaemon, а… как это сделать?
toZen
AnrDaemon, а… как это сделать?
Click
McDakk
τοΖεη, было бы конечно неплохо, если бы вы подсказали, где именно(в каких местах) и с помощью чего вписать этот адрес, ну да ладно
ecc83
если бы вы подсказали, где именно(в каких местах)
Если бы вы были внимательнее и читали то, что вам предлагается, ну да ладно…
McDakk
τοΖεη, я меняю все ссылки, которые есть в файле на адрес для старых дистрибутивов, после обновления временных файлов в настройках в файле изменяются две ссылки на неподдерживаемые.
Вот как выглядит файл до обновления временных файлов:
А вот как после:
А вот ошибка при обновлении временных файлов:
Пользователь добавил сообщение 09 Июля 2018, 17:17:56:
ecc83, я все, вроде, сделал.
ARTGALGANO
оставьте только 4 строки
deb http://old-releases.ubuntu.com/ubuntu zesty multiverse universe restricted main
остальное все удалите
deb http://old-releases.ubuntu.com/ubuntu zesty-updates multiverse universe restricted main
deb http://old-releases.ubuntu.com/ubuntu zesty-backports main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu zesty-security multiverse universe restricted main
AnrDaemon
Замените ваш source.list целиком на
deb http://old-releases.ubuntu.com/ubuntu zesty main restricted universe multiverse
Выполните
deb http://old-releases.ubuntu.com/ubuntu zesty-updates main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu zesty-security main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu zesty-backports main restricted universe multiverse
apt-get update && apt-get dist-upgrade
Хотите получить помощь? Потрудитесь представить запрошенную информацию в полном объёме.
Прежде чем [Отправить], нажми [Просмотр] и прочти собственное сообщение. Сам-то понял, что написал?…
McDakk
ARTGALGANO
McDakk, можете удалить этот appstream
sudo apt purge libappstream3
- Печать
Страницы: [1] 2 Все Вверх
Если вы активный пользователь Linux, то наверняка встречались с тем, что некоторые пакеты так сказать ломаются. Это может быть вызвано по разным причинам, некорректно установленный пакет, какие-то ошибки во время установки и многое другое. Что в свою очередь может сказаться и на самом менеджере пакетов “apt-get”, и как итог, возможно что дойдет даже то того, что вы не сможете обновляться или устанавливать программное обеспечения. Данная статья поможет вам решить вопрос со сломанными пакетами в Debian / Ubuntu, а так же их производными. Так как сломанные пакеты могут возникать по разным причинам, существует несколько способов для решения этой задачи, но, не все они могут сработать, тут все зависит от конкретного случая.
P.S. Желательно точно знать какой пакет у вас сломан, так как это поможет вам выбрать один из способом решения задачи.
Чиним сломанные пакеты с apt-get
Первый вариант, который может помочь починить сломанные пакеты имеется в самом менеджере пакетов apt, и для починки сломанных пакетов достаточно ввести две команды:
sudo apt-get update --fix-missing sudo apt-get install -f
Этот способ поможет для решения уже установленных в вашей системе пакетов, который по каким то причинам сломались. После выполнения первой команды необходимо убедиться, что она исправила ошибки, а затем переходить к введению второй команды. Возможно, что для исправления сломанных пакетов понадобиться несколько минут:
Чиним сломанные пакеты с apt-get и dpkg
Но, что делать если пакет сломался во время установки? Можно попробовать выполнить команды из первого примера, если они не сработают, переходим к использованию apt-get и dpkg, для этого первым делом используем dpkg для настройки пакетов. А затем выполняем очистку apt-get:
sudo dpkg --configure -a sudo apt-get clean sudo apt-get update
В некоторых ситуациях может понадобиться удалить файл блокировки, после удаления файла блокировки, снова выполните предыдущие команды:
sudo rm /var/lib/apt/lists/lock
Принудительное удаление пакета с помощью apt-get и dpkg
В редких ситуациях может случиться и такое, что ни один из выше указанных методов не сработает и вам понадобиться вручную удалить сломанный пакет. Для этого разумеется вы должны точно знать что это за пакет, и первый вариант удаление пакета с помощью apt-get, для этого вводим команду:
sudo apt-get remove и название пакета
Если же вам не удалось удалить пакет, переходим к кардинальным мерам, для принудительного пакеты введите команду:
sudo dpkg --remove --force-remove-reinstreq и название пакеты
Затем выполните очистку и обновление пакетов:
sudo apt-get clean && sudo apt-get update
Заключение
Если вы не знаете про менеджеры пакетов apt-get и dpkg, на WIKI имеется статьи, первая про apt, вторая статья про dpkg. В редких ситуациях, выше приведенных мер может быть недостаточно для исправления сломанных пакетов. В этом случае, может понадобиться ручная сборка и удаление сломанных пакетов, правда, имеется риск повредить работоспособность всей системы, что в свою очередь может вывести ее из строя. В этом случае, если вы делали резервные копии вашей системы можно откатиться работоспособной версии системы. Сделать резервную копию вашей системы можно при помощи Timeshift или Deja Dup, последняя имеется в дистрибутиве Ubuntu. Но, чаще всего удается отделаться малой кровью когда появляются сломанные пакеты, и выше приведенных мер достаточно для исправления сломанных пактов.
А на этом сегодня все. Надеюсь данная статья будет вам полезна.
Журнал Cyber-X
Многие новички могут по тем или иным причинам столкнуться с ошибками пакетного менеджера dpkg. Они могут возникнуть в случае прерывания установки (к примеру, завис компьютер), или при любой другой нештатной ситуации.
Пакетный менеджер dpkg позволяет устанавливать, удалять и получать информацию по пакетам. Он представляет собой основу системы управления пакетами в Ubuntu и других основанных на Debian дистрибутивах.
Базовый синтаксис dpkg следующий:
dpkg [опции] действие
Примеры использования dpkg
Установка пакета:
dpkg -i package-name.deb
Само собой, команда должна выполняться через sudo или от имени root.
Просмотр всех установленных пакетов в системе:
dpkg -l
Узнать детали по конкретному пакету:
dpkg -c packagename.deb
Удалить установленный ранее пакет:
dpkg -r package-name
Как исправить ошибку dpkg?
При появлении ошибок, связанных с менеджером пакетов, следует в первую очередь выполнить команду:
dpkg --configure -a
Команда производит настройку всех распакованных, но ненастроенных пакетов.
Однако бывает, что возникает ошибка «Не удалось получить доступ к файлу блокировки» («Unable to acquire the dpkg frontend lock»). В общем случае такое происходит, когда происходит установка пакетов в разных приложениях одновременно. Однако чаще такое случается при аварийной остановке установки приложения. В таком случае стоит удалить lock-файлы при помощи команд:
sudo rm /var/lib/apt/lists/lock
sudo rm /var/cache/apt/archives/lock
В случае, если ошибки менеджера пакетов все равно возникают, можно попробовать воспользоваться следующими командами:
cd /var/lib/dpkg/updates
sudo rm *
sudo apt-get update
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 попытается исправить проблемы зависимость, стоящая перед и он напечатает внесенные вами изменения.
Здесь важно учитывать изменения, которые вы печатаете поскольку, если он не разрешается в конфликте с зависимостями, он продолжит удаление конфликтующего пакета или пакетов и сообщит нам, какие зависимости конфликтуют с пакетом.
Таким же образом вы можете выбрать другое решение:
Теме статьи:
Как скачать пакеты 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.
Содержание статьи соответствует нашим принципам редакционная этика. Чтобы сообщить об ошибке, нажмите здесь.