У нас есть настроенный дистрибутив Ubuntu, репозиторий с некоторыми настраиваемыми пакетами, и мы запускаем автоматические обновления на нескольких системах. Что мы хотим сделать, так это предоставить обновление одного из наших пакетов, который может иметь новую зависимость, которая еще не установлена.
Я понимаю, что обычно apt предотвращает это автоматически, и использование dist-upgrade позволяет это сделать.
Как я могу добиться такого поведения, чтобы наши автоматические обновления работали одинаково?
В идеале мы хотели бы, чтобы новые пакеты устанавливались только в том случае, если один из наших пакетов требует, чтобы это было необходимо (либо как прямая зависимость, либо как дочерний элемент и т. Д.)
Должен ли я знать о возможных проблемах или повышенном риске поломки. К системам, как правило, нелегко получить доступ через консоль, поэтому все, что вызывает проблему, требующую ручного вмешательства, было бы очень плохо!
Должен ли я знать о возможных проблемах или повышенном риске поломки.
После переключения на «dist-upgrade», если вы используете репозитории Ubuntu, я думаю, вы начнете получать обновления ядра, которых раньше не делали.
К сожалению, обновления ядра являются фактором риска в описанной вами ситуации.
В вашей ситуации может иметь смысл а) настроить ваше репо как имеющее приоритет и б) скопировать в него протестированное ядро из репозитория ubuntu.
Вы также можете попробовать закрепить / удерживать пакет ядра. Проблема, которую я нахожу здесь, заключается в том, что разные инструменты учитывают разные системы штифтов / фиксаторов или ни одной. Т.е. apt-get v.s. способность против синаптический. Надеюсь, вам не понадобится использовать synaptic, и вы можете установить pin / hold как в apt-get, так и в aptitude, чтобы быть в безопасности.
Как было сказано, unattended-upgrades
очевидно, не поддерживает это, но вы можете легко получить такое поведение, используя cron-apt
. cron-apt
запускает код оболочки, поэтому вы можете изменить его конфигурацию для вызова dist-upgrade точно так же, как в командной строке.
Почему бы просто не настроить задание cron, которое запускает какой-нибудь вариант apt-get update && apt-get dist-upgrade
? Возможно, вы имеете в виду, что хотите только dist-upgrade
поведение для одного из ваш пакеты, но я думаю, что не стоит особо касаться этого. В стабильной версии Ubuntu dist-upgrade
должен очень редко втягивать новые пакеты, и если это так, вероятно, для этого есть очень веская причина, например, обновление безопасности.