Вопрос или проблема
Пакет unattended-upgrade, который полезен для синхронизации с обновлениями безопасности, похоже, переопределяет закрепленные пакеты, что регулярно нарушает работу моей системы, и мне приходится его удалять (тем самым делая мою систему менее безопасной).
Я наблюдаю это с пакетом firefox. Я пытаюсь использовать пакет от mozilla и закрепил его, чтобы не использовать snap-пакет. Он регулярно “обновляется” (из-за эпохи) до snap-пакета, мне потребовалось некоторое время, чтобы понять, почему, но я разобрался, проверив history.log
Start-Date: 2024-05-16 10:19:05
Commandline: /usr/bin/unattended-upgrade
Upgrade: firefox:amd64 (125.0.3~build1, 1:1snap1-0ubuntu5)
End-Date: 2024-05-16 10:19:07
Start-Date: 2024-05-29 06:39:37
Commandline: /usr/bin/unattended-upgrade
Upgrade: firefox:amd64 (126.0~build2, 1:1snap1-0ubuntu5)
End-Date: 2024-05-29 06:39:38
apt/aptitude не имеют этой проблемы, так как они подчиняются моим закреплениям, но unattended-upgrade этого не делает.
Package: *
Pin: origin packages.mozilla.org
Pin-Priority: 1000
Это не исправленный баг в unattended-upgrades
:
- https://github.com/mvo5/unattended-upgrades/issues/319
- https://github.com/mvo5/unattended-upgrades/issues/368
- https://bugs.launchpad.net/ubuntu/+source/unattended-upgrades/+bug/2033646
Правильное обходное решение – разрешить все источники (репозитории) для автоматических обновлений:
/etc/apt/apt.conf.d/99unattended-upgrades-custom
:
Unattended-Upgrade::Origins-Pattern {
"origin=*";
};
Что, вероятно, и есть то, что вам нужно.
Ответ или решение
Чтобы обеспечить работу unattended-upgrades
в соответствии с вашими настройками приоритета пакетов (pinned packages), необходимо решить существующую проблему, при которой unattended-upgrades
игнорирует указанные вами приоритеты.
Ваша ситуация, когда unattended-upgrades
обновляет пакет Firefox до версии, установленной в Snap, несмотря на ваши настройки, связана с известной ошибкой в пакете unattended-upgrades
. Однако есть обходные пути, которые могут помочь вам сохранить безопасность системы, не отказываясь от автоматических обновлений.
Решение проблемы
-
Создайте файл настроек для
unattended-upgrades
:Вам нужно будет настроить файл конфигурации, чтобы разрешить автоматические обновления для всех источников (репозиториев):
Откройте терминал и выполните следующую команду для создания или редактирования файла:
sudo nano /etc/apt/apt.conf.d/99unattended-upgrades-custom
-
Добавьте следующие строки в файл:
Вставьте следующее содержимое в файл:
Unattended-Upgrade::Origins-Pattern { "origin=*"; };
Это позволит
unattended-upgrades
принимать во внимание все происхождения пакетов при автоматических обновлениях. Тем не менее, по умолчанию этот подход может не решить проблему игнорирования приоритетов. В результате, вы можете столкнуться с неуместными обновлениями. -
Настройка исключений (если это нужно):
Чтобы сделать ваше решение более аккуратным, вы можете дополнительно настроить исключения для пакетов, которые не должны обновляться автоматически. Для этого добавьте секцию для исключений в ваш конфигурационный файл. Например, для Firefox:
Unattended-Upgrade::Package-Blacklist { "firefox"; };
-
Проверка конфигурации:
Перезагрузите службу
unattended-upgrades
, чтобы сохранить внесенные изменения:sudo systemctl restart unattended-upgrades
-
Тестирование и мониторинг:
Рекомендуется следить за первыми несколькими автоматическими обновлениями, чтобы убедиться, что ваши настройки работают как ожидалось. Вы можете просматривать логи в
/var/log/unattended-upgrades/
для проверки, было ли принято ваши настройки при выборе пакетов для обновления.
Заключение
Эти шаги помогут вам сохранить автоматические обновления системы в безопасности, при этом игнорируя нежелательные изменения в ваших пинах. Убедитесь, что вы внимательно следите за обновлениями и в при необходимости корректируете настройки для достижения желаемого уровня управления системой.
Если эта проблема будет повторяться или будет обнаружена новая информация о unattended-upgrades
, следите за обновлениями в официальных баг-трекерах, упомянутых вами ранее, чтобы быть в курсе любых доступных исправлений.
Благодарю за ваше время, и надеюсь, что данное решение поможет вам в дальнейшем управлении системой.