Вопрос или проблема
Ubuntu 20.04.6 LTS
sudo apt-get upgrade
Ошибки :
У следующих пакетов неудовлетворенные зависимости:
linux-tools-5.4.0-1040-azure : Зависит от: linux-azure-tools-5.4.0-1040, но он не установлен
linux-tools-5.4.0-1142-azure : Зависит от: linux-azure-tools-5.4.0-1142, но он не установлен
E: Неудовлетворенные зависимости. Попробуйте выполнить 'apt --fix-broken install' без пакетов (или укажите решение).
apt --fix-broken install
Ошибки:
Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
Корректировка зависимостей... Готово
Следующие пакеты были установлены автоматически и больше не требуются:
g++-7 geoip-database libbind9-160 libcupsfilters1 libcupsimage2 libdns-export1100 libdns1100 libgeoip1 libirs160 libisc-export169
libisc169 libisccc160 libisccfg160 libisl19 libjson-c3 liblwres160 libplymouth4 libstdc++-7-dev
linux-azure-5.4-cloud-tools-5.4.0-1140 linux-azure-5.4-cloud-tools-5.4.0-1142 linux-azure-5.4-headers-5.4.0-1140
linux-azure-5.4-headers-5.4.0-1142 linux-azure-5.4-tools-5.4.0-1140 linux-azure-5.4-tools-5.4.0-1142
linux-azure-cloud-tools-5.4.0-1140 linux-azure-headers-5.4.0-1140 linux-azure-tools-5.4.0-1140 linux-cloud-tools-5.4.0-1140-azure
linux-headers-5.4.0-1140-azure linux-image-5.4.0-1140-azure linux-modules-5.4.0-1140-azure linux-modules-extra-5.4.0-1140-azure
linux-tools-5.4.0-1140-azure python3-pam
Используйте 'sudo apt autoremove' для их удаления.
Следующие дополнительные пакеты будут установлены:
linux-azure-tools-5.4.0-1040 linux-azure-tools-5.4.0-1142
Следующие НОВЫЕ пакеты будут установлены:
linux-azure-tools-5.4.0-1040 linux-azure-tools-5.4.0-1142
Обновлено 0, установлено новых 2, для удаления 0, а не обновлено 5.
2 не полностью установлено или удалено.
Необходимо скачать 0 Б/10,5 МБ архивов.
После этой операции будет использовано 49,3 МБ дополнительного дискового пространства.
Продолжить? [Y/n] Y
(Чтение базы данных ... в данный момент установлено 212877 файлов и каталогов.)
Подготовка к распаковке .../linux-azure-tools-5.4.0-1040_5.4.0-1040.42_amd64.deb ...
Распаковка linux-azure-tools-5.4.0-1040 (5.4.0-1040.42) ...
dpkg: ошибка при обработке архива /var/cache/apt/archives/linux-azure-tools-5.4.0-1040_5.4.0-1040.42_amd64.deb (--unpack):
попытка перезаписи '/usr/lib/libcpupower.so.5.4.0-1040', который также содержится в пакете linux-azure-5.4-tools-5.4.0-1040 5.4.0-1040.42~18.04.1
dpkg-deb: ошибка: подпроцесс paste был убит сигналом (Обрыв канала)
Подготовка к распаковке .../linux-azure-tools-5.4.0-1142_5.4.0-1142.149_amd64.deb ...
Распаковка linux-azure-tools-5.4.0-1142 (5.4.0-1142.149) ...
dpkg: ошибка при обработке архива /var/cache/apt/archives/linux-azure-tools-5.4.0-1142_5.4.0-1142.149_amd64.deb (--unpack):
попытка перезаписи '/usr/lib/libcpupower.so.5.4.0-1142', который также содержится в пакете linux-azure-5.4-tools-5.4.0-1142 5.4.0-1142.149~18.04.1
dpkg-deb: ошибка: подпроцесс paste был убит сигналом (Обрыв канала)
При обработке следующих архивов произошли ошибки:
/var/cache/apt/archives/linux-azure-tools-5.4.0-1040_5.4.0-1040.42_amd64.deb
/var/cache/apt/archives/linux-azure-tools-5.4.0-1142_5.4.0-1142.149_amd64.deb
E: Подпроцесс /usr/bin/dpkg вернул код ошибки (1)'
Затем
sudo apt-autoremove :
Ошибки снова
Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
Возможно, вам стоит выполнить 'apt --fix-broken install'.
У следующих пакетов неудовлетворенные зависимости:
linux-tools-5.4.0-1040-azure : Зависит от: linux-azure-tools-5.4.0-1040, но он не установлен
linux-tools-5.4.0-1142-azure : Зависит от: linux-azure-tools-5.4.0-1142, но он не установлен
E: Неудовлетворенные зависимости. Попробуйте выполнить 'apt --fix-broken install' без пакетов (или укажите решение).
И так далее! Как разорвать этот проклятый цикл?
Ответ или решение
Вопрос о том, как установить обновления безопасности на операционной системе Ubuntu 20.04.6 LTS с учетом возникающих ошибок о несоответствиях зависимостей, является актуальной проблемой для многих пользователей. Обычно подобные ошибки связаны с отсутствием необходимых пакетов или конфликтующими версиями установленных программ. Разберем, как можно разрешить данную ситуацию, используя теорию, примеры и рекомендации по применению.
Теория
Аварийные ситуации в пакетных менеджерах наподобие apt
могут возникать по различным причинам, включая наличие поврежденных пакетов, конфликты версий и неполные обновления. Встроенный менеджер пакетов dpkg
, который используется apt
, отвечает за управление пакетами на более низком уровне. Конфликты чаще всего возникают при попытке установки или обновления пакета, когда файлы пакета пересекаются с файлами уже существующего на системе пакета. В нашем случае это привело к ошибке, связанной с файлами libcpupower.so
, что может быть вызвано тем, что один и тот же файл пытается быть установлен разными пакетами.
Пример
В вашем случае команда sudo apt-get upgrade
привела к возникновению ошибки о неподходящих зависимостях. Пакеты linux-azure-tools-5.4.0-1040
и linux-azure-tools-5.4.0-1142
не были установлены, несмотря на то, что они требуются для успешного выполнения команды. Команда apt --fix-broken install
должна была исправить зависимости путем автоматической установки недостающих пакетов. Однако она столкнулась с конфликтами файлов. Ошибка
dpkg: error processing archive /var/cache/apt/archives/linux-azure-tools-5.4.0-1040_5.4.0-1040.42_amd64.deb (--unpack):
trying to overwrite '/usr/lib/libcpupower.so.5.4.0-1040', which is also in package linux-azure-5.4-tools-5.4.0-1040 5.4.0-1040.42~18.04.1
указывает на конфликт файлов между двумя версиями пакетов инструментов для Azure, который может быть результатом пересечения в версии файлов внутри пакетов.
Применение
Шаг 1: Удаление конфликтующих пакетов
Первым шагом решения данной проблемы будет удаление текущих пакетов, относящихся к linux-azure-tools
. Используйте следующую команду, чтобы принудительно удалить проблематичные пакеты:
sudo dpkg --remove --force-remove-reinstreq linux-azure-tools-5.4.0-1040 linux-azure-tools-5.4.0-1142
Эта команда удалит пакеты, которые установлены не полностью, игнорируя любые ошибочные состояния.
Шаг 2: Очистка кэша пакетов
После этого вам следует очистить кэш загруженных пакетов, чтобы заново скачать и установить их. Используйте команду:
sudo apt clean
Эта команда удалит все загруженные пакеты, находящиеся в /var/cache/apt/archives
.
Шаг 3: Перезапуск установки зависимостей
Теперь можно попытаться автоматически исправить зависимости и скачать отсутствующие пакеты:
sudo apt --fix-broken install
Эта команда скачает и установит вновь необходимые пакеты и выполнит установку, избегая прежних ошибок.
Шаг 4: Обновление системы
После успешного разрешения зависимостей, можете приступить к обновлению остальных пакетов:
sudo apt-get update
sudo apt-get upgrade
Эти команды обновят список доступных пакетов и установят более новые версии для уже установленных программ и библиотек.
Дополнительные действия
Если после выполнения вышеуказанных шагов проблема остается, то рекомендуется:
- Обратиться к логам системы (например,
/var/log/apt/term.log
) для более детального изучения ошибок. - Рассмотреть возможность использования альтернативных версий пакетов или репозиториев.
Заключение
Проблемы с зависимостями пакетов — частое явление в системах Linux, однако, зная теорию управления пакетами и следуя практическим инструкциям, можно эффективно решать возникающие задачи. Это не только улучшает стабильность системы, но и повышает ее безопасность посредством регулярных обновлений.