Введение

Часть 12

Восстанавливайте рабочую среду, а не полагайтесь на память

Самая ценная автоматизация — не всегда прикладная задача. Иногда важнее прийти на новый хостинг-аккаунт, положить маленький Core, выполнить один явный рецепт и вернуть привычные инструменты и правила работы.

Ваша среда — это рецепт плюс состояние

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

Запишите, что должно автоматически пересоздаваться, а что должно восстанавливаться из резервной копии. Рецепт установки описывает инструменты и безопасные значения по умолчанию; ему не нужно тайком переносить данные приложения или учётные данные на новый хост.

Перед написанием рецепта изучите среду, которой уже пользуетесь

core показывает компактную картину Core, интерфейса и модулей; install -l — установленные модули и пакеты; include — хранилище пакетов интерфейса, а upgrade -c проверяет версии без записи.

Этот перечень отделяет «мне кажется, эти инструменты нужны» от воспроизводимого состава среды. Уберите устаревшие привычки до того, как навсегда закрепите их в автоматической установке.

core
install -l
include
upgrade -c

`setup.lil` — одноразовый установочный сценарий, а не постоянный сценарий запуска

Текущий Core замечает обычный setup.lil рядом с lil.php, при необходимости запускает его после авторизации и удаляет только после успешного выполнения всех строк. Если полного Installer ещё нет, Core умеет получить его и продолжить исходную установку.

Делайте установку явной. Групповой install компактен и читаем; точные версии через -v уместны, когда вам сознательно нужен зафиксированный рецепт. Паролям, закрытым ключам и учётным данным проектной базы в этом файле места нет.

install help history upgrade dir pwd md mf edit find stat hash run

`autoload.lil` нужен для небольших повторяющихся действий при запуске сессии

run проверяет autoload.lil один раз за авторизованную сессию и не удаляет его. Это место для лёгких проверок или подготовки окружения, которые должны повторяться, а не для одноразовой установки.

upgrade -auto check — хороший пример: команда управляет небольшим блоком в autoload.lil и проверяет обновления один раз за сессию. Автоматическое обновление — более сильное правило и остаётся добровольным; в важных средах часто лучше сначала проверить, затем просмотреть изменения и только потом обновлять.

upgrade -auto check
upgrade -info

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

install <mod> выбирает актуальную совместимую публичную версию; install <mod> -v <ver> запрашивает конкретный опубликованный номер. В обоих случаях сохраняются ограничения активного поколения Core и зависимости модуля.

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

install hash -i
install hash -v 1.1.3

Браузерный интерфейс — отдельный слой пакетов, а не среда выполнения команд

include управляет составными пакетами CSS/JavaScript, например lil, hotkeys и code. Режим сессии временный; -s создаёт постоянную композицию в .lil.css и .lil.js.

При переносе это разделение полезно: PHP-модули могут работать правильно, даже если любимый пакет интерфейса ещё не установлен. Сначала восстановите функциональность, затем оформление. Если слой интерфейса запутался, kill -include сбрасывает его, не удаляя Core.

include -l
include lil -i
include -lil -s

Рецепт установки не закончен, пока вы не проверили его в чистой среде

Лучшее доказательство — чистая установка: разверните свежий Core, выполните сценарий, затем сравните core, install -l и upgrade -c с тем, что собирались воспроизвести.

Так всплывают незаметные зависимости — команда, установленная вручную месяцы назад, забытый пакет интерфейса или расширение PHP, которое есть на одном хостинге и отсутствует на другом. Воспроизводимость доказывается повторной сборкой, а не заявлением.

core
install -l
upgrade -c

Сохраните это как сценарий

Это намеренно маленький setup.lil. Положите его рядом со свежим lil.php, когда хотите один раз установить этот набор инструментов. Core удалит setup.lil только после полного успеха, поэтому неудачная установка остаётся видимой и её можно повторить.

#lil
install help history upgrade dir pwd md mf edit find stat hash run