Dpkg repair broken packages что это
How to Fix Broken Packages in Linux
Linux package managers, like Apt and DNF, are extremely powerful and intuitive, but that doesn’t mean things can’t go wrong. Occasionally, a package install goes wrong, and you’re left to pick up the pieces. Package managers have the ability to fix broken packages and skip broken updates to get your system working again and avoid troubles in the future. This article covers how to fix broken packages in Linux.
These tips and tricks should help you get unstuck in most instances. They’re all fairly universal, but every situation is different, so keep that in mind when trying to debug your own situation.
Fixing Broken Packages in Ubuntu
First, run an update to make sure there aren’t newer versions of the required packages.
Next, you can try forcing Apt to look for and correct any missing dependencies or broken packages. This will actually install any missing packages and repair existing installs.
Another place where error can pop up in package installations is the configuration process. Behind the scenes, dpkg is taking care of this part, not Apt, so it would stand to reason that when a package fails during configuration, dpkg is the tool to turn to in order to fix it.
Start by trying to force dpkg to reconfigure any broken or partially configured packages.
If that doesn’t solve the problem, you can take a more forceful approach. Start by listing any packages that dpkg marked as requiring a reinstall.
You should see the problematic package(s) there. As long as there isn’t anything that doesn’t seem to belong there, you can force-remove the broken packages.
When dpkg is done, try to clean up with Apt.
With any luck, that’ll get you back to where you started. It won’t get you the broken packages that you tried to install, but at least Apt will be functional again.
Permanent DPKG Lock
There’s a less common issue with ridiculous dpkg locks preventing you from doing anything. Every time you try to use Apt or dpkg, you get an error saying another application already is … when it isn’t.
It’s actually easy to delete the lock file preventing you from using Apt and getting back to doing what you need to. Sometimes these lock files remain in place after an error occurs in an install, derailing the process and preventing the file from being removed automatically. In this case, you’ll need to do it yourself.
For good measure, delete the lock in cache.
Fixing Broken Packages in Fedora/CentOS/RHEL
Fixing broken packages in Fedora/CentOS/RHEL is less common, as yum and dnf do really great work in making sure packages are installed correctly. However, sometimes things get mixed up in package use. The command to do that on rpm-based systems is:
Conclusion
Hopefully, one of these fixes worked for you, and you’re back working on your Linux system normally. Remember that the best way to handle a totally out-of-hand situation is to try to return to the way it was before. Don’t try to power through and add more things to solve a breakage by adding more things unless you know exactly what you’re doing. Chances are you’ll end up with a tangled mess of broken things that’ll be harder to sort out.
You may also need to clean up your Linux system to get rid of unnecessary and broken packages. If the cause is due to an old PC not able to support newer software, you can also make use of these three ways to put your old PC to good use.
Never Miss Out
Receive updates of our latest tutorials.
John is a young technical professional with a passion for educating users on the best ways to use their technology. He holds technical certifications covering topics ranging from computer hardware to cybersecurity to Linux system administration.
4 comments
When it comes to Debian-based distros, one should use Synaptic instead of error-prone tools such as APT or dpkg. While it may be real kewl to use command line but APT and dpkg lend themselves to easy misspellings of commands and options.
Comments are closed.
Popular Posts
Dreametech Bot L10 Pro Robot Vacuum and Mop Review
How to Mount Your iPhone as an External Drive in Ubuntu
How to Reset the Root Password in Linux
15 of the Best Linux Games in 2021
How to Combine PDF Files on Windows and Linux
8 Useful and Interesting Bash Prompts
The Ultimate Guide to Apt and Apt-Get Commands
4 Ways to Hide Desktop Icons in Ubuntu
How to Convert Ubuntu Into Regolith Linux
How to Create an SSH Honeypot to Catch Hackers in Your Linux Server
Affiliate Disclosure: Make Tech Easier may earn commission on products purchased through our links, which supports the work we do for our readers.
Неудовлетворенные зависимости Ubuntu
При установке пакетов из официальных или сторонних репозиториев вы можете столкнуться с проблемой неудовлетворенные зависимости Ubuntu. Чтобы понять причину возникновения этой ошибки сначала надо разобраться как работают пакетные менеджеры в Linux. Здесь всё компоненты системы, библиотеки и сами программы разделены на пакеты. И если какой-либо программе нужна определенная библиотека, она не поставляется вместе с этой библиотекой, а ожидает, что эта библиотека будет уже установлена в системе.
Установкой библиотек и других компонентов занимается пакетный менеджер, отсюда у каждой программы есть ряд зависимостей которые должны быть удовлетворены чтобы программа смогла заработать.
Неудовлетворенные зависимости в Ubuntu
По английски наша ошибка ещё может писаться как the following packages have unmet dependencies. Она может возникнуть в нескольких случаях, давайте сначала рассмотрим основные из них:
1. Обновление и исправление зависимостей
Самое первое что надо сделать при проблемах с зависимостями, это хоть как-нибудь их исправить, потому что иначе пакетный менеджер работать не будет. В некоторых случаях, если списки репозиториев давно не обновлялись их обновление может помочь:
Эта команда установит зависимости, которые есть во официальных репозиториях (поможет при использовании dpkg) и если это не решит проблему, то удалит пакеты, для которых зависимости удовлетворить не удалось. Также после этого можно выполнить:
А потом повторить предыдущую команду. Следующим шагом можно попробовать обновить систему до самой последней версии. Это тоже может помочь если вы пытаетесь установить пакет из официальных репозиториев и при этом возникает проблема с зависимостями:
sudo apt upgrade
sudo apt full-upgrade
Если причиной вашей проблемы стал устаревший пакет надо его удалить или придумать для него замену. Например, если у вас установлена старая версия php, могут возникнуть проблемы с установкой новой версии, потому что будут конфликтовать версии библиотек, от которых зависит программа. Однако можно найти PPA со специально подготовленной старой версией php, которая ни с кем конфликтовать не будет.
Также подобная проблема может возникать при использовании PPA. Эти репозитории поддерживаются сторонними разработчиками, и могут содержать проблемы, если это ваш вариант, то, лучше поискать альтернативные способы установки необходимой программы.
2. Установка зависимостей
Дальше установка зависимостей Ubuntu. Следующий этап, если вы скачали пакет в интернете, например, от другого дистрибутива с таким же пакетным менеджером, можно попытаться установить таким же способом библиотеки, которые он просит. Это может сработать особенно, если вы пытаетесь установить программу из старой версии дистрибутива. Пакеты можно искать прямо в google или на сайте pkgs.org:
Здесь собрано огромное количество пакетов от различных дистрибутивов, в том числе и от Ubuntu и Debian. Просто выберите нужную версию пакета для вашей архитектуры. Скачать файл можно чуть ниже на странице пакета:
После загрузки пакета с сайта его можно установить через тот же dpkg:
После этого можно снова попробовать установить свой пакет. Но устанавливаемая библиотека может потребовать свои неудовлетворенные зависимости, а та ещё свои, поэтому тянуть программы из других дистрибутивов таким образом не рационально.
3. Удаление зависимостей
Если у вас есть скачанный пакет, и он говорит, что он зависит о версии библиотеки, которой в вашей системе нет, но вы уверены, что ему подойдет и другая версия, то можно просто убрать эту зависимость из пакета. Но для этого надо его перепаковать. Такая ситуация была когда-то с популярным менеджером Viber. Рассмотрим на примере того же вайбера.
Сначала распакуйте пакет в подпапку package командой:
Затем туда же извлеките метаданные пакета:
В файле package/DEBIAN есть строчка Depends, где перечислены все библиотеки, от которых зависит пакет и их версии. Просто удалите проблемную библиотеку или измените её версию на ту, которая есть в системе.
Затем останется только собрать пакет обратно:
И можете устанавливать, теперь с зависимостями будет всё верно:
Но такое исправление зависимостей Ubuntu следует использовать только для пакетов, которые точно неверно собраны. Важно понимать, что пакетный менеджер вам не враг, а помощник, и то что вы отключите зависимости и установите программу ещё не значит, что она потом будет работать.
4. Распаковать пакет
Следующий способ подойдет, если программа которую вы устанавливаете это библиотека, например, веб-драйвер для Selenium. Пакет можно распаковать и просто разложить исполняемые файлы из него по файловой системе в соответствии с папками внутри архива. Только желательно использовать не корневую файловую систему, а каталог /usr/local/ он как раз создан для этих целей.
5. Использовать snap пакеты
Выводы
В этой статье мы разобрали как исправить проблемы с зависимостями Ubuntu. Некоторые из способов довольно сложные, а другие проще. Но сама эта система, согласно которого пакеты зависят от других, а те ещё от других очень сложная и не удивительно, что время от времени в ней возникают ошибки. А какие способы решения этой проблемы вы знаете? Напишите в комментариях?
Ошибка у вас зафиксированы сломанные пакеты
Во время установки программ с помощью пакетного менеджера apt в любом из дистрибутивов, использующих этот пакетный менеджер, вы можете столкнуться с ошибкой, что у вас зафиксированы сломанные пакеты. Это пакеты, которые не установились полностью потому что им не хватает зависимостей или процесс установки был по какой-либо причине прерван.
В этой статье мы рассмотрим что делать с такой ошибкой, как её исправить, а также я дам ссылки на другие материалы на сайте, которые помогут справится с проблемой.
Как исправить у вас зафиксированы сломанные пакеты?
1. Обновите списки пакетов
Возможно вам не удалось установить нужные пакеты потому что списки репозиториев устарели, и там ещё не было нужных пакетов. Для обновления списка пакетов выполните:
2. Установите битые пакеты
После обновления списка пакетов из репозиториев может помочь установка битых пакетов. Этот шаг поможет особенно если вы устанавливали пакет с помощью dpkg и теперь нужно доустановить его зависимости с помощью пакетного менеджера. Для этого есть специальная команда:
3. Очистите лишние пакеты
Установке могут мешать лишние пакеты, которые больше не нужны в системе. Для их удаления выполните:
sudo apt autoremove
Утилита отобразит список всех битых пакетов, которые не установлены, вы можете попытаться их удалить с помощью команды:
4. Используйте dpkg
Вместо apt вы можете использовать команду dpkg чтобы посмотреть какие пакеты вызывают проблему. Просто выполните:
Команда покажет проблемные пакеты, а потом вы сможете их удалить той же командой:
5. Разрешите зависимости
Битые пакеты чаще всего появляются из-за того, что пакетный менеджер не может найти для них нужные зависимости. Если вам всё же очень нужно установить такой пакет, просто разрешите эти зависимости. Для этого можно скачать и установить их вручную или если вы уверенны, что зависимости в пакете указаны неверно, можно скачать его распаковать и удалить мешающие зависимости. Подробнее об этом читайте в этой статье.
Выводы
В этой небольшой статье мы рассмотрели что делать если в вашей системе появились битые пакеты и как их исправить. Здесь решение проблемы очень сильно зависит от вашей ситуации, но здесь приведены основные варианты решения, которые должны помочь вернуть пакетный менеджер к работе. Иногда рекомендуют удалить пакет вручную из базы данных dpkg /var/lib/dpkg/status, однако лучше этого не делать и найти путь решить проблему по другому, ручное редактирование подобных файлов может создать ещё больше проблем.
Нет похожих записей
Оцените статью:
Об авторе
Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.
8 комментариев
Вот почему я использую Fedora с DNF, за 5 лет использования даже не припомню случаев некорректной работы DNF. APT в Дебиан подобных дистрибутивах это сплошное разочарование.
Если бы все так было просто с зависимостями, что их через форсе принудительно установить, то это был бы не Линукс. Ниче, что система после таких манипуляций не работает? После ваших советов, новичек «уложит» систему точно.
Согласен. С Fedora бубен уже покрылся пылью. Чего все с этой Ubunto’й носятся.
Ничего не помогло. Постоянно пишет, что сломаны пакеты. к примеру хочу установить: apt-get install mariadb-server. Делаю как вы пишите.
Следующие пакеты имеют неудовлетворённые зависимости:
mariadb-server : Зависит: mariadb-server-10.1 (>= 1:10.1.29-6) но он не будет установлен
E: Невозможно исправить ошибки: у вас зафиксированы сломанные пакеты.
root@user-All-Series:
# sudo apt clean
root@user-All-Series:
# sudo apt autoremove
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Обновлено 0 пакетов, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
root@user-All-Series:
Use apt-get to fix missing and broken packages
In this article, we will learn how to fix the missing dependencies and broken packages using the apt-get command. Note that, we have run the commands and procedure mentioned in this article on a Debian 10 system. The same procedure can be followed in Ubuntu and older Debian versions.
We will use the command-line Terminal for trying the solutions and fixing the problem. To open the Terminal application in Debian, hit the super key on the keyboard and search for it using the search bar that appears. When the search result appears, click on the Terminal icon to open it.
Using apt-get to fix missing and broken packages
Apt-get is a Terminal based package management tool used for installing, upgrading, and removing packages. Along with these features, it also has flags that can be used for fixing missing dependencies and broken packages.
Method 1
Use the “fix-missing” option with “apt-get update” to run the updates and ensure the packages are up to date and there is no new version available for the packages.
Once you are done with the update, execute the below command in order to force the package manager to find any missing dependencies or broken packages and install them.
Another approach to solving the broken package issue via apt-get is to edit the “/etc/apt/sources/list” file and adding sites with newer versions of packages available. Then running the “apt-get update” command to update the repository list.
If the above method does not fix the issue of broken dependencies and broken packages and still you are receiving the error, then try the following methods.
Other methods
Method 1:
In this method, we will use the “apt-get autoremove” and the “dpkg” in order to fix missing dependencies and broken packages.
1. Update the repository index by executing the below command in Terminal:
2. Next, execute the below command to clean out the local repository:
3. Execute the below command to remove all the unnecessary packages that are no longer needed:
The above command will display the unmet dependencies or broken package’s name.
4. Then try executing the below command in Terminal to force remove the broken package:
Method 2:
In the following method, we will use the “dpkg—configure” command in order to fix missing dependencies and broken packages.
Dpkg is a package management tool that can be used to install, remove and manage packages. Similar to apt-get, it can also help to fix broken packages and missing dependencies. If you receive some errors while installing or updating the packages, try the following solution with dpkg:
1. Execute the below command in the Terminal to reconfigure all the partially installed packages.
If the above command does not work, like in our case and you see similar results displaying the erroneous package, then try removing the package.
2. Execute the below command in Terminal in order to remove the erroneous package.
3. Then use the below command to clean out the local repository:
After trying any one of the above solutions, run the update command to ensure the dependencies are resolved and broken packages are fixed or removed.
Fixing the dependency and broken packages errors and then returning the system to the normal state may take hours. Sometimes it gets so complicated that when you finally fix it, you feel so lucky. We have presented some solutions regarding this error, so please give them a try. If you know some of the possible solutions we did not mention, please let us know in the comments.
About the author
Karim Buzdar
Karim Buzdar holds a degree in telecommunication engineering and holds several sysadmin certifications. As an IT engineer and technical author, he writes for various web sites. He blogs at LinuxWays.
Dpkg repair broken packages что это
Как профессиональному пользователю Linux, мне приходится устанавливать, тестировать и удалять тонны пакетов на своих системах Ubuntu, Fedora и Arch.
Установка и удаление пакетов просты, но если вы столкнетесь с проблемой битых пакетов на вашей машине Ubuntu, это приведет к хаосу. Если вы не можете удалить битые пакеты с вашей машины Ubuntu, вы, вероятно, столкнетесь с проблемами при их последующей установке. Кроме того, битые пакеты занимают некоторое место в файловой системе Ubuntu.
Удаление битых пакетов в Ubuntu Linux
В Ubuntu проблема битых пакетов может возникнуть из-за ошибки зависимости, ошибки репозитория, блокировки файловой системы или других проблем. Иногда вам может потребоваться выполнить команды от имени пользователя root, чтобы удалить поврежденные пакеты из системы Ubuntu.
Обычно пакеты устанавливаются внутри корневой файловой системы; когда у вас есть полномочия root, и вы делаете какие-либо несоответствия с любым из тех файлов или каталогов, где установлен пакет, он может оказаться битым.
Другой способ словить битый пакет — удалить репозиторий пакетов из системы. Вы можете использовать команды aptitude или dpkg для удаления приложений из системы, но они не удалят битые пакеты полностью. В этом посте мы рассмотрим, как удалить битые пакеты из системы Ubuntu.
1. Очистка конкретного пакета в Ubuntu
Когда вы точно знаете, какой пакет имеет проблему с поломкой на вашей машине Ubuntu, вы можете использовать этот метод, чтобы удалить этот пакет и очистить дисковое пространство. Сначала необходимо очистить и удалить файлы кэша этого приложения.
Например, вы можете выполнить следующие команды, чтобы очистить файлы кэша для пакета NodeJS, который сломался на вашей системе Ubuntu.
Теперь выполните команду auto clean, чтобы освободить место на диске, а затем обновите системный репозиторий.
Вы также можете использовать команду move, чтобы переместить файлы кэша вашего приложения во временные файлы. Затем вы можете удалить поврежденный пакет через инструмент менеджера пакетов Debian (dpkg). Например, следующие команды удалят сломанный менеджер версий Ruby (RVM) в системе Ubuntu.
2. Решение проблемы блокировки
Иногда, после установки пакета в дистрибутивах Ubuntu или Debian, пакет сохраняет некоторые данные в файловой системе в виде архива. Поэтому, когда вы пытаетесь удалить этот файл, вы получаете ошибку, говорящую, что файл используется другим инструментом или другой программой.
Обычно, когда вы удаляете инструмент с машины, файлы зависимостей и другие плагины тоже должны быть удалены. Но что делать, если некоторые пакеты не хотят покидать ваш компьютер! Пожалуйста, удалите заблокированные файлы пакетов Debian, выполнив следующие команды remove с правами root.
3. Принудительное удаление поврежденных пакетов
Этот метод поможет вам принудительно удалить неработающие пакеты в системе Ubuntu. Принудительное удаление требуется потому, что при установке некоторых пакетов в систему они устанавливаются в корневой каталог. Однако вы можете выполнить следующую команду dpkg, приведенную ниже, чтобы удалить все неработающие пакеты из вашей системы. Пожалуйста, не забудьте заменить
на имя вашего поврежденного пакета.
Вы также можете создать список удаляемых пакетов в вашей системе Ubuntu, выполнив следующую команду GREP в оболочке терминала. Затем удалите их, выполнив следующую команду dpkg.
Вот еще одна вещь, которая может вам понадобиться: после удаления неработающего пакета в системе Ubuntu, пожалуйста, выполните команды aptitude для обновления системного репозитория.
Теперь выполните следующую команду aptitude с флагом F, чтобы увидеть, какие пакеты были установлены автоматически и больше не требуются. Позже вы сможете принять меры и для этих приложений.
4. Автоматическая очистка поврежденных пакетов в Ubuntu
Команды auto clean и auto-remove на самом деле не удаляют поврежденные пакеты из системы. Тем не менее они помогают освободить место, которое занимало ранее установленное/удаленное приложение.
Часто разработчики создают приложение таким образом, что файлы приложения остаются в файловой системе даже после удаления приложения из системы. В некотором роде, они действительно полезны при повторной установке того же приложения тем же методом.
Тем не менее выполните следующие команды clean и auto-clean в оболочке терминала, чтобы очистить неиспользуемые места в системе, удалив файлы кэша.
Теперь выполните следующую команду auto-remove с правами root, чтобы удалить ненужные приложения и данные зависимостей.
После очистки системы выполните команду обновления репозитория для бесперебойной работы вашего ПК.
5. Восстановление поврежденных пакетов через режим восстановления
В этом методе мы покажем самый неиспользуемый способ удаления поврежденного пакета в системе Ubuntu. Мы будем использовать режим восстановления Ubuntu для восстановления поврежденных пакетов. Итак, технически этот метод не направляет вас на удаление поврежденных приложений, но он выполняет некоторые задачи, которые также восстанавливают поврежденные приложения. Когда инструмент dpkg не может восстановить пакет, вы можете удалить его из системы.
Сначала запустите систему Ubuntu и нажмите клавишу Shift, чтобы войти в режим восстановления. Если клавиша Shift у вас не работает, вам может понадобиться найти комбинацию кнопок восстановления для вашей модели ПК/ноутбука, выполнив быстрый поиск в Google.
После перезагрузки компьютера выберите в меню загрузки Дополнительные параметры Ubuntu, затем, когда откроется режим восстановления, выберите в выпадающем списке меню ‘Восстановить поврежденный пакет’.
Теперь вам нужно нажать кнопку Yes для монтирования вашей системы внутри файловой системы. Это перемонтирует файловую систему в режиме чтения/записи, а другие файловые системы будут смонтированы в каталоге /etc/fstab.
6. Исправление сломанного системного пакета
Обычно на машине Ubuntu мы используем приложение Software Updater для обновления репозитория, файлов кэша и других данных пакета. Но иногда, из-за ошибки зависимости или системной ошибки, вы не можете запустить приложение Software Updater.
Чтобы избавиться от этой проблемы, вы можете очистить системный кэш и немного подправить нарушенную файловую систему. Выполните следующие команды с правами root в оболочке терминала, чтобы очистить файлы кэша и установить недостающие зависимости.
7. Получение менеджера пакетов Synaptic
Менеджер пакетов Synaptic является наиболее используемым инструментом управления пакетами на основе графического интерфейса для Ubuntu и других дистрибутивов Debina. В нем есть функции для установки, удаления, обновления и исправления неработающих пакетов. Если на вашей машине не установлен инструмент Synaptic, выполните следующие команды в терминале с правами root для его установки.
Когда установка менеджера пакетов Synaptic завершится, откройте его и нажмите на кнопку «Изменить» в верхней панели. Теперь найдите опцию ‘Fix Broken Packages’. Обычно, чтобы обновить, удалить или исправить какие-либо пакеты через инструмент Synaptic, вам нужно сначала отметить это приложение в списке «Все пакеты».
После исправления пакета, вы можете выбрать любой из вышеупомянутых методов для удаления этого приложения из системы Ubuntu.
Дополнительные советы: Режим восстановления для удаления поврежденного пакета
Вот дополнительное предложение, которое я использую в своей системе Ubuntu время от времени, чтобы системные пакеты не были повреждены. Вам нужно очистить и удалить файлы репозитория, когда вы больше не используете это программное обеспечение, иначе каждый раз при обновлении репозитория вы будете видеть ошибку.
Чтобы удалить неиспользуемые репозитории с машины Ubuntu, откройте инструмент ‘Software & Updates’ и перейдите на вкладку ‘Other Software’. На вкладке «Другое ПО» вы увидите список репозиториев, установленных в вашей системе. Чтобы удалить любой репозиторий, отметьте название репозитория и нажмите на кнопку «Удалить» в нижней панели.
После удаления любого репозитория выполните команду aptitude update, чтобы обновить систему.
Если вы не можете найти репозиторий для определенного пакета, вы всегда можете использовать команду whereis, чтобы узнать, где находятся файлы.
Заключительные слова
Все вышеупомянутые методы полезны для тех, кто одновременно борется с проблемами как одного, так и нескольких битых пакетов в своей системе Ubuntu. Иногда поврежденные системы вызывают ошибки, которые требуют исправления без переустановки всей системы. В этом посте я описал несколько методов удаления поврежденных пакетов в системе Ubuntu.
Я надеюсь, что эта статья была информативной для вас; пожалуйста, поделитесь этой статьей со своими друзьями и сообществом Linux. Вы также можете написать свое мнение в разделе комментариев к этому посту.
Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.