Назад | Перейти на главную страницу

Какие подходящие варианты для безопасного автоматического обновления

Связано с моим предыдущий вопрос, какие параметры apt следует использовать при обновлении пакета, чтобы:

Заранее благодарю за любую помощь

Я провел небольшое исследование на страницах руководства, в частности в man apt.conf и man apt-get, и нашел следующее. Прокомментируйте, если вы думаете, что я что-то забыл.

  • использовать вариант --only-upgrade, или установите элемент конфигурации apt APT::Get::Only-Upgrade к правде
  • элемент конфигурации apt APT::Get::force-yes установить на ложь
  • использовать вариант --no-remove, или установите элемент конфигурации apt APT::Get::Remove ложь

Не уверен что --trivial-only/APT::Get::Trivial-Only здесь помогает, нужно лучше разобраться.

С участием aptitude, соответствующие части выглядят так:

  • используя safe-upgrade команда с --no-new-installs вариант
  • устанавливать Aptitude::Delete-Unused значение false, чтобы неиспользуемые пакеты не удалялись автоматически (я могу не согласиться с aptitude относительно того, что не используется ...)
  • добавление -R/--without-recommends может помочь, требуется дополнительное исследование

Обновить Я провел несколько тестов на старой системе:

# grep ^Ubuntu /etc/motd
Ubuntu 10.04.4 LTS

apt-get выглядит осторожнее, а результат не отличается от обычного apt-get upgrade и apt-get -o APT::Get::Only-Upgrade=true --no-remove -o APT::Get::force-yes=false upgrade.

aptitude кажется более агрессивным, а «безопасные варианты», похоже, делают свое дело. Стандартное обновление (фактически выполняется safe-upgrade)

# aptitude -s -y upgrade
W: The "upgrade" command is deprecated; use "safe-upgrade" instead.
Lettura elenco dei pacchetti... Fatto
Generazione albero delle dipendenze   
Lettura informazioni sullo stato... Fatto
Reading extended state information   
Initializing package states... Fatto
Resolving dependencies...
The following NEW packages will be installed:
  linux-image-2.6.32-55-generic-pae{a}
The following packages will be upgraded:
  linux-generic-pae linux-image-generic-pae linux-image-server linux-libc-dev linux-server
5 packages upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 0B/32.8MB of archives. After unpacking 98.2MB will be used.
Would download/install/remove packages.

Теперь с «безопасными» вариантами:

# aptitude -s -y --no-new-installs -R -o Aptitude::Delete-Unused=false safe-upgrade 
Lettura elenco dei pacchetti... Fatto
Generazione albero delle dipendenze   
Lettura informazioni sullo stato... Fatto
Reading extended state information   
Initializing package states... Fatto
Resolving dependencies...
The following packages have been kept back:
  linux-generic-pae linux-image-generic-pae
The following packages will be upgraded:
  linux-image-server linux-libc-dev linux-server
3 packages upgraded, 0 newly installed, 0 to remove and 2 not upgraded.
Need to get 0B/878kB of archives. After unpacking 0B will be used.
Would download/install/remove packages.

Намного больше похоже на то, что я хотел.

К сожалению, ни один из обоих наборов, похоже, не препятствует установке новых пакетов или обновлению других пакетов при использовании с install команда вместо upgrade/safe-upgrade, так что я как бы вернулся к исходной точке: я не могу apt-get/aptitude чтобы остановиться, когда он может выполнить потенциально параноидально опасную операцию. В каком-то смысле у меня есть лучшая подстраховка, но мне ничто не мешает упасть.