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-обновлениям¶
Информация
Мы рекомендуем использовать Nightly-обновления только если у вас есть другая машина или виртуалка, и НЕ использовать их в работе.
- Используйте скрипт холодного резервирования, чтобы скопировать машину на другую систему перед переходом на nightly-сборки.
- Запустите скрипт
update.shна новой машине с параметром--nightlyи подтвердите действие. - Изучайте/тестируйте nightly-обновления на вторичной машине.