Как исправить битые пакеты ubuntu

Во время установки программ с помощью пакетного менеджера 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 License

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

Об авторе

Основатель и администратор сайта losst.ru, увлекаюсь открытым программным обеспечением и операционной системой Linux. В качестве основной ОС сейчас использую Ubuntu. Кроме Linux, интересуюсь всем, что связано с информационными технологиями и современной наукой.

Исправляем битые пакеты с помощью терминала или Центра приложений в Ubuntu/Linux Mint

Бывает, что при установке пакетов с помощью терминала в Ubuntu 14.04 вылетает ошибка:

(...) Вы можете выполнить 'apt-get -f install' для исправления этих ошибок:
Следующие пакеты имеют неудовлетворенные зависимости: (...)

Есть несколько путей решения этой проблемы.
Сейчас опишу их:

Вариант 1

Введите и выполните в терминале, эту команду, чтобы исправить битые пакеты:

sudo apt-get --fix-broken install

Вариант 2

Первый вариант не помог? Пробуем этот:

sudo rm /var/lib/apt/lists/* -vf
sudo apt-get update

Вариант 3

Или можем попробовать следующие команды:

sudo apt-get clean
sudo apt-get autoclean
sudo apt-get autoremove

Вариант 4

Или вот так:

sudo dpkg --configure -a
sudo apt-get update

Вариант 5

Открываем Центр приложений Ubuntu и если видим запрос на восстановление сломанных пакетов, то нажимаем на кнопку Исправить.

Исправляем битые пакеты


17 марта 2014, 23:54
  
Александр

Linux

0
  
497





0



Из этой категории

    Double Commander не распаковывает RAR-архивы
    Кодировка в текстовом редакторе Xed
    Opera не русифицируется в Linux
    Как исправить ошибку запуска VirtualBox VM в Linux
    Не могу записать ничего на ext4
    Как установить или удалить ядро ​​Liquorix Linux Mint
    13 горячих клавиш в bash Linux
    Советы и приемы настройки командной строки в Bash Linux
    Как определить папки занимающие большое пространство на диске, в Linux
    Как скопировать файлы с помощью команды ср в Linux



Комментарии ()

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

    Introduction

    Linux packages are compressed archives containing programs and files necessary to run them. The package distribution system is designed to be robust and simplify the application installation process.

    However, a bad internet connection or misconfigured third-party installers can corrupt packages and cause problems on your system.

    This article will show you how to troubleshoot and fix broken packages on Ubuntu using the available APT and DPKG tools.

    How to fix broken packages in Ubuntu

    Prerequisites

    • An account with sudo privileges
    • An Ubuntu system

    Check for Updates

    Start troubleshooting by rebuilding the list of dependencies. The --fix-missing option tells APT to ignore missing packages. The option ensures the update process is performed without APT returning an error.

    sudo apt update --fix-missing
    The --fix-missing option tells APT to ignore the missing packages

    Force APT to Correct Missing Dependencies or Broken Packages

    Missing package dependencies are a common reason for package-related errors.

    1. Use apt install with the -f flag to tell APT to locate the missing packages and install them.

    sudo apt install -f

    APT lists the missing packages on your system.

    The apt install tells APT to locate the missing packages and install them

    2. Press ENTER to start the installation.

    Note: If troubleshooting has led to Ubuntu needing to be reinstalled, please refer to our reinstallation guide How to Reinstall Ubuntu.

    Force Reconfigure or Remove Broken Packages with DPKG

    Broken packages may cause package manager configuration problems.

    1. Reconfigure DPKG, the base package management system, with the following command:

    sudo dpkg --configure -a

    2. Check if DPKG marked some packages as needing a reinstall.

    sudo dpkg -l | grep ^..R
    

    3. If the command above returns a list of one or more packages, try removing the packages by typing:

    sudo dpkg --purge --force-all [package-name]

    The example below shows how to remove the corrupted vlc-plugin-base package.

    Remove the corrupted vlc-plugin-base package

    Warning: The dpkg --purge --force-all command removes a package even if the removal causes further dependency issues. Use the command with care.

    4. After you finish troubleshooting, run the following command to clean up the system:

    sudo apt clean

    5. Then update the repositories again:

    sudo apt update

    Resolve DPKG Lock Issue

    The DPKG lock error appears when trying to install a package while another process is using DPKG.

    The DPKG lock error appears when trying to install a package while another process is using DPKG

    However, sometimes the error occurs even if no other processes are using the package management system.

    1. To fix the problem, remove the lock file manually:

    sudo rm /var/lib/apt/lists/lock

    2. Also, remove the lock in cache:

    sudo rm /var/cache/apt/archives/lock

    Deleting the lock enables you to use APT and DPKG again.

    Conclusion

    The article provided common ways of resolving problems caused by broken packages on Ubuntu.

    For more information related to package management on Ubuntu, read:

    • How to List Installed Packages on Ubuntu
    • A Comprehensive Guide to Using Snap Packages on Ubuntu
    • How to Install Deb Files (Packages) on Ubuntu

    I just recently bought an arduino and requires gcc-avr/avrdude to compile the software. I installed avr for another microprocessor component a while ago but is obviously an outdated version (gcc version 3.3 20030512 (prerelease)) so I went ahead to update these but it didn’t work.

    (Please note that before hand I also broke my aptdaemon through an incomplete wine installation (couldn’t get passed font installation agreement) but I fixed that via a re-installation then accepting the agreement.)

    I am trying to update these by running bingo’s build script but the dependencies it requires cannot be installed due to avr… terminal reports

    Reading package lists... Done
    Building dependency tree       
    Reading state information... Done
    build-essential is already the newest version.
    libncurses5-dev is already the newest version.
    libncurses5-dev set to manually installed.
    libusb-0.1-4 is already the newest version.
    libx11-dev is already the newest version.
    You might want to run 'apt-get -f install' to correct these:
    The following packages have unmet dependencies:
    arduino-core : Depends: gcc-avr but it is not going to be installed
    avr-libc : Depends: gcc-avr (>= 1:4.3.4) but it is not going to be installed
    Depends: binutils-avr (>= 2.20) but it is not going to be installed
    binutils-dev : Depends: binutils (= 2.21.0.20110327-2ubuntu3) but 2.21.0.20110327-2ubuntu2 is to be installed
    libcwidget-dev : Depends: libcwidget3 (= 0.5.16-3ubuntu2) but it is not going to be installed
    Depends: libsigc++-2.0-dev but it is not going to be installed
    Depends: libncursesw5-dev but it is not going to be installed
    libmpfr-dev : Depends: libgmp3-dev (>= 4.2.dfsg-1) but it is not going to be installed
    python-dev : Depends: python (= 2.7.1-0ubuntu5.1) but 2.7.1-0ubuntu5 is to be installed
    Depends: python2.7-dev (>= 2.7.1-1~) but it is not going to be installed
    tk8.4-dev : Depends: tk8.4 (= 8.4.19-4) but it is not going to be installed
    E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
    

    But running

    apt-get -f install
    

    results in

    (Reading database ... 163021 files and directories currently installed.)
    Unpacking binutils-avr (from .../binutils-avr_2.20.1-1ubuntu2_i386.deb) ...
    dpkg: error processing /var/cache/apt/archives/binutils-avr_2.20.1-1ubuntu2_i386.deb (--unpack):
    trying to overwrite '/usr/bin/avr-size', which is also in package avr-binutils 2.13.90.030512-2
    dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
    Unpacking gcc-avr (from .../gcc-avr_1%3a4.3.5-1_i386.deb) ...
    dpkg: error processing /var/cache/apt/archives/gcc-avr_1%3a4.3.5-1_i386.deb (--unpack):
    trying to overwrite '/usr/bin/avr-g++', which is also in package avr-gcc-c++ 3.2.90.20030512-2
    dpkg-deb: error: subprocess paste was killed by signal (Broken pipe)
    Errors were encountered while processing:
    /var/cache/apt/archives/binutils-avr_2.20.1-1ubuntu2_i386.deb
    /var/cache/apt/archives/gcc-avr_1%3a4.3.5-1_i386.deb
    E: Sub-process /usr/bin/dpkg returned an error code (1)
    

    I have tried running update manager and updating my system via it but all I get is an error message

    The following packages have unmet dependencies:
    arduino-core: Depends: gcc-avr but it is not installed
    avr-libc: Depends: gcc-avr (>= 1:4.3.4) but it is not installed
    Depends: binutils-avr (>= 2.20) but it is not installed
    

    which then tells me to try running apt-get -f install which just results the same as last time.

    So how can I fix my system, I really need the new avr, please :)
    BTW, my system is Ubuntu 11.04

    One of the best things about Linux is the apt command which lets you install applications and software effortlessly. Using apt, you don’t have to go through downloading the software, then going through the installer and clicking ‘Next’ a dozen times. It makes sure that every software is installed with just one terminal command.

    But, just like any other program, things can go wrong. The error that we will be talking about in this write-up looks something like the following:

    E: Unable to correct problems, you have held broken packages.

    This error may occur when you are trying to install something via the apt utility. Let us look into the error in detail and try to solve the problem.

    What causes this error?

    Some of the software (mostly third-party ones) do not come with compatible dependencies and apt expects that your system already has those components. In case the required components aren’t found on your system, apt throws an error related to broken packages which means that the package you are trying to install is incomplete.

    Outdated repositories, problems with the ‘sources.list‘ file, or an old/unsupported version of Linux might be the cause of this problem.

    Methods to fix this problem

    Before moving to the advanced methods, let us try a few quick tricks that can potentially help:

    Method 1: Update the repositories

    The apt update is a well-known command which instantly updates the list of packages and their dependencies. As the problem we are facing is due to missing dependencies, there is a good chance that this command will fix the error.

    If the problem persists, try this command:

    This will update the existing packages on your system to the latest version.

    Method 2: Use aptitude instead of apt

    Aptitude is also a package manager like apt and it surprisingly works in some situations where apt doesn’t! all you need to do is use aptitude instead of apt.

    For example, suppose you want to install BIND9 using aptitude, you will have to enter the following command:

    sudo aptitude install bind9
    

    If you don’t have aptitude installed, run the following commands:

    sudo apt-get update
    sudo apt-get install aptitude
    

    Method 3: Use autoremove to get rid of unnecessary packages

    Sometimes, unnecessary packages stay behind even after uninstalling their parent application. These residual packages might interfere with installation of new applications or libraries. To get rid of these unnecessary residual packages, just enter the following command into the terminal:

    There’s no need to worry as autoremove will only handle the leftover packages and dependencies.

    Now with the basics out of the way, we will look at some more advanced methods to solve this problem.

    Method 4: Look for held packages and unhold them

    As the error message suggests, the problem is caused by packages on hold. The term ‘held package’ means that it can’t be upgraded, removed, or modified in any way.

    To get a list of held packages, you need to enter the following command:

    To unhold a specific package, enter:

    sudo apt-mark unhold <package-name>
    

    To unhold all held packages, enter:

    sudo apt-mark unhold $(sudo apt-mark showhold)
    

    Method 5: Use the synaptic package manager to fix broken packages

    Originally, Linux doesn’t have an inbuilt graphical package manager like Windows. This is why the synaptic package manager became immensely popular on Debian-based distributions made for personal computers as it provided a lightweight and robust GUI package manager.

    One of the key features of this utility is that you can fix broken packages very easily. Follow the steps below:

    1. First, install the synaptic package manager:

    sudo apt update
    sudo apt install synaptic
    

    2. Run synaptic with superuser privileges:

    3. Go to Edit > Fix Broken Packages

    Fix Broken Packages In Synaptic

    Fix Broken Packages In Synaptic

    It will take some time if there are broken packages present. Check if the problem is resolved.

    References

    • Ask Ubuntu – Unhold a package
    • Ask Ubuntu thread on the same problem

    Summary

    In this article, we saw five different methods to fix the error “Unable to correct problems, you have held broken packages.” All the methods discussed were easy to execute and I hope you were able to fix the problem on your system. If you are still facing the same issue even after trying all the above methods, it can be because of using an unsupported Linux distribution, in which case, you will have to consider upgrading to a newer version of it.

    Понравилась статья? Поделить с друзьями:
  1. Как найти все чертежи сабнатика
  2. Как найти почту человека маил
  3. Как найти косинус угла через стороны треугольника
  4. Как найти посмотреть прошивку
  5. Как найти на компьютере игру танки