Перейти к содержанию

Update

Автоматическое обновление

Скрипт обновления в каталоге animails позаботится об обновлениях.

Запустите скрипт обновления:

./update.sh

При необходимости он спросит вас, как вы хотите поступить. Об ошибках слияния будет сообщено. Некоторые незначительные конфликты будут исправлены автоматически (в пользу кода репозитория animails).

Опции

# Опции можно комбинировать

# - Проверить наличие обновлений и показать изменения
./update.sh --check

# - Не запускать animails после применения обновления
./update.sh --skip-start

# - Пропустить проверку ICMP до публичных DNS-резолверов (используйте только если вы заблокировали любые ICMP-соединения на вашей машине animails)
./update.sh --skip-ping-check

# - Переключить обновления animails на нестабильную (nightly) ветку.
./update.sh --nightly

# - Переключить обновления animails на стабильную (master) ветку. Используется по умолчанию, если вы не изменили её на --nightly.
./update.sh --stable

# - Переключить обновления animails на legacy ветку.
./update.sh --legacy

# - Принудительное обновление (автоматическое, но не поддерживается, используйте на свой страх и риск)
./update.sh --force

# - Запустить сборщик мусора для очистки старых тегов образов и выйти
./update.sh --gc

# - Обновление с опцией стратегии слияния "ours" вместо "theirs"
#   Это позволит **разрешить конфликты** при слиянии в пользу ваших локальных изменений; этого следует избегать. Локальные изменения всегда будут сохранены, если только мы тоже не изменили файл XY.
./update.sh --ours

# - Не обновлять, а только предварительно скачать образы и выйти
./update.sh --prefetch

Я забыл, что именно я изменил перед запуском update.sh

Посмотрите git log --pretty=oneline | grep -i "before update", вы увидите вывод, похожий на этот:

22cd00b5e28893ef9ddef3c2b5436453cc5223ab Before update on 2020-09-28_19_25_45
dacd4fb9b51e9e1c8a37d84485b92ffaf6c59353 Before update on 2020-08-07_13_31_31

Выполните git diff 22cd00b5e28893ef9ddef3c2b5436453cc5223ab, чтобы увидеть изменения.

Можно ли откатиться назад?

Да.

См. тему выше, вместо diff выполните checkout:

docker compose down
# Замените Commit-ID 22cd00b5e28893ef9ddef3c2b5436453cc5223ab на ваш ID
git checkout 22cd00b5e28893ef9ddef3c2b5436453cc5223ab
docker compose pull
docker compose up -d
docker-compose down
# Замените Commit-ID 22cd00b5e28893ef9ddef3c2b5436453cc5223ab на ваш ID
git checkout 22cd00b5e28893ef9ddef3c2b5436453cc5223ab
docker-compose pull
docker-compose up -d

Хуки (Hooks)

Вы можете встроиться в механизм обновления, добавив скрипты с именами pre_commit_hook.sh и post_commit_hook.sh в корневой каталог animails. Подробности см. здесь.

Цикл обновлений

  • Мы планируем ежемесячный цикл выпусков для крупных обновлений.
  • Релизы нумеруются следующим образом: ГГГГ-ММ (например, 2022-05)
  • Исправления для основного обновления будут обозначаться как «ревизии» буквами a, b, c (например, 2022-05a, 2022-05b и т. д.)

Варианты обновлений

stable (стабильные обновления): Эти обновления подходят для продуктивного использования. Они выходят с циклом не реже 1 раза в месяц.

legacy: Эти обновления подходят для продуктивной эксплуатации и основаны на animails 2025-02. Поддержка заканчивается в феврале 2026 года.

nightly (нестабильные обновления): Эти обновления НЕ подходят для использования в рабочей среде и предназначены только для тестирования. Nightly-обновления опережают стабильные, так как в них мы тестируем новые и более обширные функции до того, как они станут доступны всем пользователям.

Получение Legacy-обновлений

Информация о Legacy-обновлениях

Начиная с обновления 2025-03, появилась возможность получать обновления для legacy-версии. Эта версия основана на animails 2025-02 и будет получать только обновления безопасности.

Внимание

Поддержка legacy-версии заканчивается в феврале 2026 года

Как получить legacy-обновления?

Чтобы переключиться на legacy-обновления, необходимо запустить скрипт обновления:

./update.sh --legacy

Получение Nightly-обновлений

Информация о Nightly-обновлениях

Начиная с обновления 2022-08 появилась возможность менять источники обновлений. До сих пор единственным (официальным) источником обновлений служила ветка master на GitHub. Однако с обновлением августа 2022 года появилась ветка Nightly, которая содержит нестабильные и крупные изменения для тестирования и обратной связи.

Ветка Nightly всегда получает новые обновления, когда в проекте animails завершается работа над чем-то, что будет включено в новую основную версию.

Помимо очевидных изменений, которые в любом случае войдут в следующее крупное обновление, она также содержит эксклюзивные функции, требующие более длительного времени тестирования.

Как получить Nightly-обновления?

Процесс относительно прост. Начиная с обновления 2022-08 (при условии обновления до этой версии) можно запустить update.sh с параметром --nightly.

Опасно

Пожалуйста, сделайте резервную копию перед переключением на nightly-сборки animails или следуйте разделу Рекомендации по Nightly-обновлениям. Мы не несем ответственности за любую потерю или повреждение данных, поэтому действуйте с осторожностью!

Скрипт сменит ветку с помощью git checkout nightly, что означает, что он снова запросит настройки IPv6. Это нормально.

Если все прошло успешно (для чего мы заранее сделали резервную копию), в интерфейсе animails в правом нижнем углу теперь должен отображаться текущий номер версии и отметка даты:
nightly footer

Рекомендации по Nightly-обновлениям

Информация

Мы рекомендуем использовать Nightly-обновления только если у вас есть другая машина или виртуалка, и НЕ использовать их в работе.

  1. Используйте скрипт холодного резервирования, чтобы скопировать машину на другую систему перед переходом на nightly-сборки.
  2. Запустите скрипт update.sh на новой машине с параметром --nightly и подтвердите действие.
  3. Изучайте/тестируйте nightly-обновления на вторичной машине.