Debian невозможно исправить ошибки у вас отложены held битые пакеты debian

При попытке установить libreoffice-core (или другие пакеты), выскакивает ошибка:

Пакеты, имеющие неудовлетворённые зависимости:
 libreoffice-core : Зависит: libreoffice-common (> 1:4.3.3) но он не будет установлен
                    Зависит: ure (>= 4.2~) но он не будет установлен
                    Зависит: libboost-date-time1.55.0 но он не будет установлен
                    Зависит: libclucene-contribs1 (>= 2.3.3.4) но он не будет установлен
                    Зависит: libclucene-core1 (>= 2.3.3.4) но он не будет установлен
                    Зависит: libcmis-0.4-4 (>= 0.4.0) но он не будет установлен
                    Зависит: libgltf-0.0-0 (>= 0.0.2) но он не будет установлен
                    Зависит: libglu1-mesa но он не будет установлен или
                                    libglu1
                    Зависит: libharfbuzz-icu0 (>= 0.9.18) но он не будет установлен
                    Зависит: libhunspell-1.3-0 (>= 1.3.3) но он не будет установлен
                    Зависит: libicu52 (>= 52~m1-1~) но он не будет установлен
                    Зависит: libmythes-1.2-0 но он не будет установлен
                    Зависит: libodfgen-0.1-1 но он не будет установлен
                    Зависит: librevenge-0.0-0 но он не будет установлен
                    Зависит: libstdc++6 (>= 4.9) но он не будет установлен
                    Зависит: uno-libs3 (>= 4.3.0~alpha) но он не будет установлен
E: Невозможно исправить ошибки, у вас отложены (held) битые пакеты.

Как это можно попытаться вылечить? У меня Debian 8 Jessie x64.

UPD_0: Удалил все из репозиториев, осталось только:

deb http://mirror.yandex.ru/debian/ jessie main
deb-src http://mirror.yandex.ru/debian/ jessie main

deb http://security.debian.org/ jessie/updates main
deb-src http://security.debian.org/ jessie/updates main

sources.list.d тоже чист.

Для «лечения» пытался выполнить:

sudo dpkg --configure -a
sudo apt-get install -f
sudo apt-get --fix-broken install
sudo rm /var/lib/apt/lists/* -vf //Не удалилась какая-то папка
sudo apt-get clean
sudo apt-get autoclean 
sudo apt-get autoremove

Вывод apt-cache policy libreoffice-common libreoffice-core:

libreoffice-common:
  Установлен: (отсутствует)
  Кандидат:   1:4.3.3-2+deb8u2
  Таблица версий:
     1:5.1.3~rc2-3 0
        100 /var/lib/dpkg/status
     1:4.3.3-2+deb8u2 500
        500 http://ftp.ru.debian.org/debian jessie/main amd64 Packages
        500 http://ftp.ru.debian.org/debian jessie/main i386 Packages
libreoffice-core:
  Установлен: (отсутствует)
  Кандидат:   1:4.3.3-2+deb8u2
  Таблица версий:
     1:4.3.3-2+deb8u3 0
        100 /var/lib/dpkg/status
     1:4.3.3-2+deb8u2 500
        500 http://ftp.ru.debian.org/debian jessie/main amd64 Packages

Переехал в офис, настроил себе пк (DEBIAN 8). Вроде все работает все хорошо.
Однако бывает такое, что виртуалбокс, скайп, кторрент и кутим начинают жутко лагать. Точнее даже не лагать, а едет шрифт, все налазит друг на друга и тп. При этом перезагрузка это лечит (перезапуск нет). Возникает это как-то спонтанно, я даже не понимаю как отследить от чего это происходит. Скорее всего спустя несколько часов после работы.

Мне подсказали, что может быть проблема в граф. фраэмворках. Мы попробовали вбить команду:

sudo apt-get install qt-*

И получили следующий результат:

Пакеты, имеющие неудовлетворённые зависимости:
 autokey-qt : Зависит: python-kde4 но он не будет установлен
 kid3-qt : Зависит: kid3-core (= 3.1.1-2) но он не будет установлен
 libclam-qtmonitors-dev : Зависит: libclam-dev но он не будет установлен
 libqt4-phonon : Конфликтует: libphonon4 но 4:4.8.0-4 будет установлен
 libqt4-ruby1.8 : Зависит: ruby-phonon но он не будет установлен
 libsmokeqt4-dev : Зависит: libsmokephonon3 (= 4:4.12.2-2) но он не будет установлен
 marble-qt : Зависит: libmarblewidget19 (= 4:4.14.2-1) но он не будет установлен
 phonon4qt5-backend-null : Конфликтует: phonon4qt5-backend
 qt-sdk : Зависит: libphonon-dev но он не будет установлен
 qt4-default : Конфликтует: qt5-default но 5.3.2+dfsg-4+deb8u1 будет установлен
 qt5-default : Конфликтует: qt4-default но 4:4.8.6+git64-g5dc8b2b+dfsg-3+deb8u1 будет установлен
E: Невозможно исправить ошибки, у вас отложены (held) битые пакеты.

Возможно конфликтует qt4 и qt5. Но удалять что-то стремно, так как там тащится пол системы.
Подскажите пожалуйста как можно решить проблему ?

sources.list

# deb http://ftp.ru.debian.org/debian/ jessie main
deb http://ftp.ru.debian.org/debian/ jessie main contrib non-free
deb-src http://ftp.ru.debian.org/debian/ jessie main contrib non-free

deb http://security.debian.org/ jessie/updates main
deb-src http://security.debian.org/ jessie/updates main

# jessie-updates, previously known as 'volatile'
deb http://ftp.ru.debian.org/debian/ jessie-updates main
deb-src http://ftp.ru.debian.org/debian/ jessie-updates main

# php 5.6
deb http://packages.dotdeb.org wheezy-php56 all
deb-src http://packages.dotdeb.org wheezy-php56 all

#deb http://packages.dotdeb.org jessie all
#deb-src http://packages.dotdeb.org jessie all

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


Debian, Linux, Ubuntu

  • 18.08.2018
  • 15 498
  • 0
  • 18.03.2019
  • 8
  • 8
  • 0

Ошибка: Невозможно исправить ошибки, у вас отложены (held) битые пакеты

  • Содержание статьи
    • Описание
    • Добавить комментарий

В данной статье пойдет речь об ошибке «Невозможно исправить ошибки, у вас отложены (held) битые пакеты», которая возникает на ОС Linux, а также о том, как данную ошибку можно исправить.

Описание

E: Невозможно исправить ошибки, у вас отложены (held) битые пакеты.

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

Информация о доступных пакетах, содержится в файле /var/lib/dpkg/status

Одним из способов это исправить будет удаление информации о более новых пакетах (на которые жалуется apt) из файла /var/lib/dpkg/status.
Первым делом делаем резервную копию:

sudo cp /var/lib/dpkg/status /var/lib/dpkg/status_backup

Теперь открываем файл /var/lib/dpkg/status для редактирования и ищем там пакет, на который жалуется apt. Например, в моем случае, ошибка выглядела так:

nvidia-384 : Зависит: nvidia-driver-390 но он не будет установлен
E: Невозможно исправить ошибки, у вас отложены (held) битые пакеты.

Ищем информацию о пакете nvidia-driver-390 в файле /var/lib/dpkg/status и удаляем ее.

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

После удаления всех мешающих пакетов, необходимо сделать sudo apt-get update
И проверить, исчезла ли ошибка.

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

sudo cp /var/lib/dpkg/status_backup /var/lib/dpkg/status

Также старые резервные копии данного файла можно найти в каталоге /var/backups. Они будут иметь названия вида:
dpkg.status.0
dpkg.status.1.gz
dpkg.status.2.gz

Угадай дистрибутив по сообщению об ошибке?

И как именно удаляли MySQL, командой или ударом ноги? :-)

mky ★★★★★

(01.04.18 13:10:52 MSK)

  • Показать ответ
  • Ссылка

Ответ на:

комментарий
от mky 01.04.18 13:10:52 MSK

Новая рубрика. Вот я считаю что ето дебиан. Ибо он самый проблемный в этих делах. Он во всех делах проблемный.

kshmr

(01.04.18 13:12:04 MSK)



Последнее исправление: kshmr 01.04.18 13:12:17 MSK
(всего

исправлений: 1)

  • Показать ответ
  • Ссылка

Вбей ошибку в гугл, посмотри какие варианты предлагают, если нерелевантные, попробуй еще mysql дописать. Полезно будет запустить apt с переменной LC_ALL=C, чтобы информация об ошибке выводилась на англ. языке.

anonymous

(01.04.18 13:15:56 MSK)

  • Ссылка

Если это debian-подобный дистр или altlinux, то попробуй sudo apt-get -f install.

  • Ссылка

Ответ на:

комментарий
от kshmr 01.04.18 13:12:04 MSK

Будешь удивлен, но вывод apt весьма информативен. Просто надо идти по цепочке.

apt install mysql-server-5.7

 — и посмотреть, что мешается. И так далее.

Я как-то микс из 5 веток Debian сбивал — все можнь настроить.

  • Показать ответ
  • Ссылка

dpkg --get-selections | grep -i hold

?

  • Ссылка

Ответ на:

комментарий
от Vsevolod-linuxoid 01.04.18 13:39:59 MSK

Пакеты, имеющие неудовлетворённые зависимости:
mysql-server-5.7 : Зависит: mysql-client-5.7 (>= 5.7.21-0ubuntu0.16.04.1) но он не будет установлен
Зависит: mysql-server-core-5.7 (= 5.7.21-0ubuntu0.16.04.1) но он не будет установлен
E: Невозможно исправить ошибки, у вас отложены (held) битые пакеты.

  • Показать ответ
  • Ссылка

Ответ на:

комментарий
от booratina 01.04.18 14:21:59 MSK

Так, а теперь

apt install mysql-client-5.7

и

apt install mysql-server-core-5.7

 — я же сказал идти по цепочке, пока не обнаружишь причину.

И про

и

dpkg --get-selections | grep -i hold

тоже неплохие советы.

Vsevolod-linuxoid ★★★★★

(01.04.18 14:25:38 MSK)



Последнее исправление: Vsevolod-linuxoid 01.04.18 14:26:36 MSK
(всего

исправлений: 1)

  • Показать ответы
  • Ссылка

Ответ на:

комментарий
от Vsevolod-linuxoid 01.04.18 14:25:38 MSK

У вас отложены битые пакеты по типу с отложенными кирпичами?

iZEN ★★★★★

(01.04.18 15:33:18 MSK)

  • Ссылка

Ответ на:

комментарий
от entefeed 01.04.18 14:42:32 MSK

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

  • Показать ответ
  • Ссылка

Ответ на:

комментарий
от Vsevolod-linuxoid 01.04.18 15:35:48 MSK

Ответ на:

комментарий
от entefeed 01.04.18 15:37:09 MSK

А можешь упоминать мое имя в каждом своем посте?

Это как? Типа, посрался с кем-то и говоришь: «Ну ты и козёл, username, и ещё упомяну entefeed.» Так, что ли? :-)

  • Показать ответы
  • Ссылка

Ответ на:

комментарий
от aureliano15 01.04.18 15:52:41 MSK

Ответ на:

комментарий
от aureliano15 01.04.18 15:52:41 MSK

«Ну ты и козёл, username, и кстати в очередной раз прощу прощения у entefeed.»

Вот так :-)

  • Ссылка

Ответ на:

комментарий
от Vsevolod-linuxoid 01.04.18 14:25:38 MSK

Пакеты, имеющие неудовлетворённые зависимости:
mysql-server-core-5.7 : Зависит: libaio1 (>= 0.3.93) но он не может быть установлен
E: Невозможно исправить ошибки, у вас отложены (held) битые пакеты.

  • Показать ответ
  • Ссылка

дебиан тут не причем — нефиг было в репе ковыряться и левак ставить…

amd_amd ★★★★★

(01.04.18 18:32:02 MSK)

  • Ссылка

Ответ на:

комментарий
от unanimous 01.04.18 15:58:02 MSK

«RedHat delendam esse» / «Disney delendam esse». Dixi.

  • Ссылка

Ответ на:

комментарий
от unanimous 01.04.18 15:58:02 MSK

Типа. По аналогии с » Carthaginem delendam esse»

Что-то вроде того.

  • Ссылка

Ответ на:

комментарий
от booratina 01.04.18 18:29:19 MSK

Имхо, лучше бы ты привёл команды, которые ты вводишь и их полный вывод. И всё это желательно внутри тегов [code][/code], чтоб читать было проще.

  • Показать ответы
  • Ссылка

Ответ на:

комментарий
от aureliano15 02.04.18 09:06:35 MSK

igor@igorPK ~ $ sudo apt-get install mysql-server
Чтение списков пакетов… Готово
Построение дерева зависимостей       
Чтение информации о состоянии… Готово
Некоторые пакеты невозможно установить. Возможно, вы просите невозможного,
или же используете нестабильную версию дистрибутива, где запрошенные вами
пакеты ещё не созданы или были удалены из Incoming.
Следующая информация, возможно, поможет вам:

Пакеты, имеющие неудовлетворённые зависимости:
 mysql-server : Зависит: mysql-server-5.7 но он не будет установлен
E: Невозможно исправить ошибки, у вас отложены (held) битые пакеты.


  • Ссылка

Ответ на:

комментарий
от aureliano15 02.04.18 09:06:35 MSK

igor@igorPK ~ $ apt install mysql-client-5.7
Чтение списков пакетов… Готово
Построение дерева зависимостей       
Чтение информации о состоянии… Готово
Некоторые пакеты невозможно установить. Возможно, вы просите невозможного,
или же используете нестабильную версию дистрибутива, где запрошенные вами
пакеты ещё не созданы или были удалены из Incoming.
Следующая информация, возможно, поможет вам:

Пакеты, имеющие неудовлетворённые зависимости:
 mysql-client-5.7 : Зависит: mysql-client-core-5.7 но он не будет установлен
E: Невозможно исправить ошибки, у вас отложены (held) битые пакеты.

igor@igorPK ~ $ apt install mysql-server-core-5.7
Чтение списков пакетов… Готово
Построение дерева зависимостей       
Чтение информации о состоянии… Готово
Некоторые пакеты невозможно установить. Возможно, вы просите невозможного,
или же используете нестабильную версию дистрибутива, где запрошенные вами
пакеты ещё не созданы или были удалены из Incoming.
Следующая информация, возможно, поможет вам:

Пакеты, имеющие неудовлетворённые зависимости:
 mysql-server-core-5.7 : Зависит: libaio1 (>= 0.3.93) но он не может быть установлен
E: Невозможно исправить ошибки, у вас отложены (held) битые пакеты.

igor@igorPK ~ $ apt install -f
Чтение списков пакетов… Готово
Построение дерева зависимостей       
Чтение информации о состоянии… Готово
обновлено 0, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
igor@igorPK ~ $ dpkg --get-selections | grep -i hold

  • Ссылка

Ответ на:

комментарий
от aureliano15 02.04.18 09:06:35 MSK

igor@igorPK ~ $ sudo apt-get -f install
Чтение списков пакетов… Готово
Построение дерева зависимостей       
Чтение информации о состоянии… Готово
обновлено 0, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
  • Ссылка

Ответ на:

комментарий
от aureliano15 02.04.18 09:06:35 MSK

После обновления в Менеджере пакетов

igor@igorPK ~ $ apt install mysql-server-core-5.7
E: Не удалось получить доступ к файлу блокировки /var/lib/dpkg/lock - open (11: Ресурс временно недоступен)
E: Не удалось выполнить блокировку управляющего каталога (/var/lib/dpkg/); он уже используется другим процессом?
igor@igorPK ~ $ 
  • Показать ответы
  • Ссылка

Ответ на:

комментарий
от booratina 03.04.18 18:17:18 MSK

Внезапно, это требует root.

  • Ссылка

Ответ на:

комментарий
от booratina 03.04.18 18:17:18 MSK

Можно попробовать следующее (не всё сразу, а пошагово, проверяя на каждом шаге, не решена ли проблема):

  1. Независимо от того, используешь ли ты apt-get или apt, команды, изменяющие состояние системы или обновляющие информацию о репозиториях, такие как install, upgrade, dist-upgrade, remove, purge и update, должны выполняться от root’а или через sudo.
  2. E: Не удалось выполнить блокировку управляющего каталога (/var/lib/dpkg/); он уже используется другим процессом?

    Пакетный менеджер всегда должен быть запущен в одном экземпляре. Убедись, что у тебя не работают одновременно apt, apt-get, aptitude, synaptic или ещё какой пакетный менеджер, а единственный работающий менеджер запущен в одном экземпляре на одном терминале (в случае консольного варианта). Если это не поможет, то для разблокировки закрой все пакетные менеджеры (консольные и графические) и выполни

    sudo fuse -k /var/lib/dpkg/lock
    sudo rm /var/lib/dpkg/lock
    
  3. Как говорил Vsevolod-linuxoid, двигайся рекурсивно к источнику проблемы. Если mysql-server-core-5.7 зависит от libaio1, которая не может быть установлена, то попробуй установить её и посмотри, что мешает ей. Потом попробуй установить то, чего ей не хватает и т. д., пока не доберёшься до отсутствующего пакета или какой-то другой ошибки.
  4. Mint 18.3 использует также репозитории Ubuntu 16.04, как я понял. Посмотри свой /etc/apt/sources.list и сравни его с тем, что предлагается на страничке http://linuxmint.info/text/repozitorii-linux-mint.html в секции «Список репозиториев Linux Mint 18», за исключением того, что там настраиваются репы для 18.0 (sarah), а у тебя 18.3 (sylvia), а значит первая строчка должна выглядеть не так deb http://packages.linuxmint.com sarah main upstream import backport, а так deb http://packages.linuxmint.com sylvia main upstream import backport. А полностью так:
    deb http://packages.linuxmint.com sylvia main upstream import backport
    
    deb http://archive.ubuntu.com/ubuntu xenial main restricted universe multiverse
    deb http://archive.ubuntu.com/ubuntu xenial-updates main restricted universe multiverse
    deb http://archive.ubuntu.com/ubuntu xenial-backports main restricted universe multiverse
    
    deb http://security.ubuntu.com/ubuntu/ xenial-security main restricted universe multiverse
    deb http://archive.canonical.com/ubuntu/ xenial partner
    

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

    Посмотри также, что у тебя лежит в каталоге /etc/apt/sources.list.d.

    После того, как исправишь (если там есть, что исправлять), выполни команду

    Обязательно предварительно сохрани копию прежней версии /etc/apt/sources.list, т. к. не факт, что это поможет, а если у тебя есть ПО из сторонних реп, то оно может перестать обновляться.

  5. hold
    dpkg --get-selections | grep -i hold

    Попробуй для всех hold-пакетов выполнить команду

    sudo apt-mark unhold пакет
  6. Попробуй удалить все битые пакеты командой

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

    Можно сначала попробовать переустановить их командой

    sudo apt-get --reinstall install пакет

    Если какие-то пакеты имеются, но не переустанавливаются и не удаляются, можно попробовать выполнить

    sudo dpkg -x /var/cache/apt/archives/имя_файла_пакета.deb /

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

  7. После всех манипуляций выполнять
  • Ссылка

Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.

  • Deathloop windows 10 version 1909 ошибка при загрузке
  • Deathloop using void engine ошибка
  • Death stranding сетевая ошибка
  • Death stranding ошибка при запуске windows 1809
  • Death stranding ошибка при запуске c0000005h