Меню

Debian ошибка установки пакета

Если вы активный пользователь Linux, то наверняка встречались с тем, что некоторые пакеты так сказать ломаются. Это может быть вызвано по разным причинам, некорректно установленный пакет, какие-то ошибки во время установки и многое другое. Что в свою очередь может сказаться и на самом менеджере пакетов “apt-get”, и как итог, возможно что дойдет даже то того, что вы не сможете обновляться или устанавливать программное обеспечения. Данная статья поможет вам решить вопрос со сломанными пакетами в Debian / Ubuntu, а так же их производными. Так как сломанные пакеты могут возникать по разным причинам, существует несколько способов для решения этой задачи, но, не все они могут сработать, тут все зависит от конкретного случая.

P.S. Желательно точно знать какой пакет у вас сломан, так как это поможет вам выбрать один из способом решения задачи.

Содержание

  • Чиним сломанные пакеты с apt-get
  • Чиним сломанные пакеты с apt-get и dpkg
  • Принудительное удаление пакета с помощью apt-get и dpkg
  • Заключение

Чиним сломанные пакеты с apt-get

Первый вариант, который может помочь починить сломанные пакеты имеется в самом менеджере пакетов apt, и для починки сломанных пакетов достаточно ввести две команды:

sudo apt-get update --fix-missing
sudo apt-get install -f

сломанные пакеты в Debian Ubuntu 1

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

Чиним сломанные пакеты с apt-get и dpkg

Но, что делать если пакет сломался во время установки? Можно попробовать выполнить команды из первого примера, если они не сработают, переходим к использованию apt-get и dpkg, для этого первым делом используем dpkg для настройки пакетов. А затем выполняем очистку apt-get:

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

сломанные пакеты в Debian Ubuntu 2

В некоторых ситуациях может понадобиться удалить файл блокировки, после удаления файла блокировки, снова выполните предыдущие команды:

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

Чтение списков пакетов… Готово
Построение дерева зависимостей       
Чтение информации о состоянии… Готово
обновлено 0, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 114 пакетов не обновлено.
не установлено до конца или удалено 7 пакетов.
После данной операции, объём занятого дискового пространства возрастёт на 0 B.
dpkg: ошибка при обработке параметра libsasl2-2:amd64 (—configure):
пакет libsasl2-2:amd64 2.1.25.dfsg1-6+deb7u1 не может быть настроен, так как libsasl2-2:i386 другой версии (2.1.25.dfsg1-6)
Настраивается пакет exim4-config (4.80-7) …
2014-04-09 15:02:37 Exim configuration error in line 550 of /var/lib/exim4/config.autogenerated.tmp:
  authenticator cram: cannot find authenticator driver «cyrus_sasl»
Invalid new configfile /var/lib/exim4/config.autogenerated.tmp, not installing
/var/lib/exim4/config.autogenerated.tmp to /var/lib/exim4/config.autogenerated
dpkg: ошибка при обработке параметра exim4-config (—configure):
подпроцесс установлен сценарий post-installation возвратил код ошибки 1
dpkg: зависимости пакетов не позволяют настроить пакет exim4-base:
exim4-base зависит от exim4-config (>= 4.30) | exim4-config-2, однако:
  Пакет exim4-config пока не настроен.
  Пакет exim4-config-2 не установлен.
  Пакет exim4-config, предоставляющий exim4-config-2, пока не настроен.

dpkg: ошибка при обработке параметра exim4-base (—configure):
проблемы зависимостей — оставляем не настроенным
dpkg: зависимости пакетов не позволяют настроить пакет exim4-daemon-light:
exim4-daemon-light зависит от exim4-base (>= 4.80), однако:
  Пакет exim4-base пока не настроен.

dpkg: ошибка при обработке параметра exim4-daemon-light (—configure):
проблемы зависимостей — оставляем не настроенным
dpkg: зависимости пакетов не позволяют настроить пакет exim4:
exim4 зависит от exim4-base (>= 4.80), однако:
  Пакет exim4-base пока не настроен.
exim4 зависит от exim4-daemon-light | exim4-daemon-heavy | exim4-daemon-custom, однако:
  Пакет exim4-daemon-light пока не настроен.
  Пакет exim4-daemon-heavy не установлен.
  Пакет exim4-daemon-custom не установлен.

dpkg: ошибка при обработке параметра exim4 (—configure):
проблемы зависимостей — оставляем не настроенным
dpkg: зависимости пакетов не позволяют настроить пакет libsasl2-modules:amd64:
libsasl2-modules:amd64 зависит от libsasl2-2 (= 2.1.25.dfsg1-6+deb7u1), однако:
  Пакет libsasl2-2:amd64 пока не настроен.

dpkg: ошибка при обработке параметра libsasl2-modules:amd64 (—configure):
проблемы зависимостей — оставляем не настроенным
dpkg: зависимости пакетов не позволяют настроить пакет sasl2-bin:
sasl2-bin зависит от libsasl2-2 (>= 2.1.25.dfsg1-6+deb7u1), однако:
  Пакет libsasl2-2:amd64 пока не настроен.

dpkg: ошибка при обработке параметра sasl2-bin (—configure):
проблемы зависимостей — оставляем не настроенным
При обработке следующих пакетов произошли ошибки:
libsasl2-2:amd64
exim4-config
exim4-base
exim4-daemon-light
exim4
libsasl2-modules:amd64
sasl2-bin
E: Sub-process /usr/bin/dpkg returned an error code (1)

[свернуть]

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

Creative Commons License

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

Об авторе

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

Многие новички могут по тем или иным причинам столкнуться с ошибками пакетного менеджера 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

Issue at Hand

You wish to install libicu57 from the testing repo. However, if you are using x86 or amd64 you cannot install this package as it is only available in testing for armel mips and mipsel.

You have in your sources.list an entry for Debian Testing (Buster or 10). You report that you are using Debian 9 (Stretch or Stable). You have created FrankenDebian. You need to configure your sources.list properly remove this entry and rollback or remove any packages you have installed from the testing repo to correct this.

After you have done this, if it is the ARM variant of libicu57 that you require you can look into cross compiling solutions or better yet virtualization.

Fix sources.list

First step is to verify that your repositories to your /etc/apt/sources.list are good. I would recommend you use /etc/apt/sources.list.d/ where each repository is it’s own file, but you can do this in just one file.

#stable.list
deb http://deb.debian.org/debian stable main contrib non-free 
deb-src http://deb.debian.org/debian stable main contrib non-free

#updates.list
deb http://deb.debian.org stable-updates main contrib non-free 
deb-src http://deb.debian.org stable-updates main contrib non-free 

#security.list 
deb http://deb.debian.org/debian-security stable/updates main contrib non-free
deb-src http://deb.debian.org/debian-security stable/updates main contrib non-free

Your sources.list should look something like this. You can change the exact http address to match your desired mirror. If you must absolutely have a testing repo, add the entry in a similar manner as above and use apt preferences to maintain some level of sanity. Apt-pinning should be used sparingly as it can lead to the creation of FrankenDebian.

Install software

Now all that is left is installing your package, which can be done with this command:

 apt-get install libicu57

or

apt-get install -t stable libicu57 **or** apt-get install libicu57/stable

You can also choose to install the package you desire from source or download it and its dependencies from the Debian Packages site and install them with dpkg -i [packageName].deb

This should install libicu57. Please comment if there is another error and we con look further into solutions. The next part is going to cover if you absolutely require the ARM or MIPS versions of software you can look into cross-compiling, or creating a virtual environment with the appropriate instruction set to safely use this version of the library.

Here is the Debian Wiki entry on Multiarch and here is the Wiki for cross-compiling. You can follow these steps to make the appropriate configuration changes to dpkg and what not to cross-compile.

However you cannot have multiple versions of the same software installed!

So if the ARM version requires dependencies and libraries that you already have a version of in x86 or amd64 then you cannot do this. The alternative is to create a virtual machine of Debian for ARM using the virtualization solution of your choice that uses the correct instruction set.

KVM is a good choice but you can use whatever solution best fits your use case.

Conclusion

Please read over this in its entirety. In fact, please make sure you read over all the links I have provided thoroughly before running any commands. If you have any questions or concerns about this post, do not hesitate to ask me. If there are any corrections or misconceptions in this answer please inform me. I can update the post as necessary.

Best of Luck!

Issue at Hand

You wish to install libicu57 from the testing repo. However, if you are using x86 or amd64 you cannot install this package as it is only available in testing for armel mips and mipsel.

You have in your sources.list an entry for Debian Testing (Buster or 10). You report that you are using Debian 9 (Stretch or Stable). You have created FrankenDebian. You need to configure your sources.list properly remove this entry and rollback or remove any packages you have installed from the testing repo to correct this.

After you have done this, if it is the ARM variant of libicu57 that you require you can look into cross compiling solutions or better yet virtualization.

Fix sources.list

First step is to verify that your repositories to your /etc/apt/sources.list are good. I would recommend you use /etc/apt/sources.list.d/ where each repository is it’s own file, but you can do this in just one file.

#stable.list
deb http://deb.debian.org/debian stable main contrib non-free 
deb-src http://deb.debian.org/debian stable main contrib non-free

#updates.list
deb http://deb.debian.org stable-updates main contrib non-free 
deb-src http://deb.debian.org stable-updates main contrib non-free 

#security.list 
deb http://deb.debian.org/debian-security stable/updates main contrib non-free
deb-src http://deb.debian.org/debian-security stable/updates main contrib non-free

Your sources.list should look something like this. You can change the exact http address to match your desired mirror. If you must absolutely have a testing repo, add the entry in a similar manner as above and use apt preferences to maintain some level of sanity. Apt-pinning should be used sparingly as it can lead to the creation of FrankenDebian.

Install software

Now all that is left is installing your package, which can be done with this command:

 apt-get install libicu57

or

apt-get install -t stable libicu57 **or** apt-get install libicu57/stable

You can also choose to install the package you desire from source or download it and its dependencies from the Debian Packages site and install them with dpkg -i [packageName].deb

This should install libicu57. Please comment if there is another error and we con look further into solutions. The next part is going to cover if you absolutely require the ARM or MIPS versions of software you can look into cross-compiling, or creating a virtual environment with the appropriate instruction set to safely use this version of the library.

Here is the Debian Wiki entry on Multiarch and here is the Wiki for cross-compiling. You can follow these steps to make the appropriate configuration changes to dpkg and what not to cross-compile.

However you cannot have multiple versions of the same software installed!

So if the ARM version requires dependencies and libraries that you already have a version of in x86 or amd64 then you cannot do this. The alternative is to create a virtual machine of Debian for ARM using the virtualization solution of your choice that uses the correct instruction set.

KVM is a good choice but you can use whatever solution best fits your use case.

Conclusion

Please read over this in its entirety. In fact, please make sure you read over all the links I have provided thoroughly before running any commands. If you have any questions or concerns about this post, do not hesitate to ask me. If there are any corrections or misconceptions in this answer please inform me. I can update the post as necessary.

Best of Luck!

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Death stranding ошибка при запуске windows 1809
  • Death stranding ошибка при загрузке