Восстанавливайте рабочую среду, а не полагайтесь на память
Самая ценная автоматизация — не всегда прикладная задача. Иногда важнее прийти на новый хостинг-аккаунт, положить маленький Core, выполнить один явный рецепт и вернуть привычные инструменты и правила работы.
Ваша среда — это рецепт плюс состояние
Установленные модули, пакеты интерфейса, стартовые сценарии и настройки описывают поведение терминала. Файлы проекта и базы данных — другой слой состояния. Разделение этих вещей сильно упрощает перенос и восстановление.
Запишите, что должно автоматически пересоздаваться, а что должно восстанавливаться из резервной копии. Рецепт установки описывает инструменты и безопасные значения по умолчанию; ему не нужно тайком переносить данные приложения или учётные данные на новый хост.
Перед написанием рецепта изучите среду, которой уже пользуетесь
Этот перечень отделяет «мне кажется, эти инструменты нужны» от воспроизводимого состава среды. Уберите устаревшие привычки до того, как навсегда закрепите их в автоматической установке.
coreinstall -lincludeupgrade -c`setup.lil` — одноразовый установочный сценарий, а не постоянный сценарий запуска
Текущий Core замечает обычный setup.lil рядом с lil.php, при необходимости запускает его после авторизации и удаляет только после успешного выполнения всех строк. Если полного Installer ещё нет, Core умеет получить его и продолжить исходную установку.
Делайте установку явной. Групповой
install help history upgrade dir pwd md mf edit find stat hash run`autoload.lil` нужен для небольших повторяющихся действий при запуске сессии
autoload.lil один раз за авторизованную сессию и не удаляет его. Это место для лёгких проверок или подготовки окружения, которые должны повторяться, а не для одноразовой установки.
autoload.lil и проверяет обновления один раз за сессию. Автоматическое обновление — более сильное правило и остаётся добровольным; в важных средах часто лучше сначала проверить, затем просмотреть изменения и только потом обновлять.
upgrade -auto checkupgrade -infoВоспроизводимость начинается с понимания того, какую свободу вы выбрали
Прежние вехи первого поколения сохранены в истории только как справочные и больше не являются целями установки. Поддерживаемая точка — текущий релиз. Начиная со следующего опубликованного выпуска нумерованные версии предполагается сохранять как точные цели установки, если конкретный релиз не будет отдельно снят.
install hash -iinstall hash -v 1.1.3Браузерный интерфейс — отдельный слой пакетов, а не среда выполнения команд
hotkeys и .lil.css и .lil.js.
При переносе это разделение полезно: PHP-модули могут работать правильно, даже если любимый пакет интерфейса ещё не установлен. Сначала восстановите функциональность, затем оформление. Если слой интерфейса запутался,
include -linclude lil -iinclude -lil -sРецепт установки не закончен, пока вы не проверили его в чистой среде
Лучшее доказательство — чистая установка: разверните свежий Core, выполните сценарий, затем сравните
Так всплывают незаметные зависимости — команда, установленная вручную месяцы назад, забытый пакет интерфейса или расширение PHP, которое есть на одном хостинге и отсутствует на другом. Воспроизводимость доказывается повторной сборкой, а не заявлением.
coreinstall -lupgrade -cСохраните это как сценарий
Это намеренно маленький setup.lil. Положите его рядом со свежим lil.php, когда хотите один раз установить этот набор инструментов. Core удалит setup.lil только после полного успеха, поэтому неудачная установка остаётся видимой и её можно повторить.
#lil
install help history upgrade dir pwd md mf edit find stat hash run