Менеджер пакетов для Яндекс Станций.
Caution
yam обновился: теперь это пакетный менеджер, который работает прямо на станции, а Lua-рантайм вынесен в отдельный пакет. Совместимость со старыми пакетами потеряна.
Linux / macOS
curl -fsSL https://hackalice.me/install.sh | shАльтернативная ссылка для Linux / macOS (если короткий URL ещё обновляется):
curl -fsSL https://raw.githubusercontent.com/nyakokitsu/yam/main/install.sh | shWindows (PowerShell)
irm https://hackalice.me/install.ps1 | iexАльтернативная ссылка для Windows PowerShell (если короткий URL ещё обновляется):
irm https://raw.githubusercontent.com/nyakokitsu/yam/main/install.ps1 | iexУстановщик подключается к колонке через ADB. Публикуются Linux ARM binaries
для aarch64-unknown-linux-musl и armv7-unknown-linux-musleabihf;
десктопных сборок нет. Платформа определяется по модели и Device Tree. При
необходимости её можно задать явно:
curl -fsSL https://hackalice.me/install.sh | YAM_PLATFORM=yandexmini_2 shПараметры установщика:
install.sh |
install.ps1 |
Назначение |
|---|---|---|
аргумент [версия] или YAM_VERSION |
-Version или YAM_VERSION |
Релиз yam-v<версия>. По умолчанию install.sh берёт первый тег yam-v* из GitHub Releases без фильтра prerelease, install.ps1 — первый не-draft и не-prerelease |
YAM_PLATFORM |
-Platform или YAM_PLATFORM |
Профиль платформы вместо автоопределения |
YAM_ROOT |
YAM_ROOT |
Каталог YAM на колонке; по умолчанию /data/yam; абсолютный путь из символов A-Za-z0-9 . _ - |
--remove-old |
-RemoveOld |
Попытаться остановить legacy yamd и полностью удалить /data/quazar/yam |
--uninstall |
-Uninstall |
Удалить YAM из YAM_ROOT (по умолчанию /data/yam) вместе с пакетами, базой и данными; на Micro также /usr/bin/yam и /etc/init.d/S99yam. Перед удалением спрашивает подтверждение |
--yes, -y |
-Yes |
Не спрашивать подтверждение при удалении |
| — | -StationIp |
IP колонки для adb connect |
Если ADB-устройств несколько, установщик спрашивает номер; если их нет —
IP-адрес и подключается к <IP>:5555. Аргументы install.sh через пайп:
curl -fsSL https://hackalice.me/install.sh | sh -s -- 0.2.1Удаление и передача параметров Windows-установщику:
curl -fsSL https://hackalice.me/install.sh | sh -s -- --uninstall& ([scriptblock]::Create((irm https://hackalice.me/install.ps1))) -Uninstall
& ([scriptblock]::Create((irm https://raw.githubusercontent.com/nyakokitsu/yam/refs/heads/main/install.ps1))) -Uninstall -YesОбёртка hackalice.me/install.ps1 пропускает только -Version и -Uninstall;
-Yes, -Platform, -StationIp и -RemoveOld передавайте скрипту по прямому
адресу из второго примера.
Warning
--remove-old выполняет rm -rf /data/quazar/yam: удаляются старый yamd,
все пакеты v1 и их данные. Перед запуском сделайте резервную копию.
--uninstall/-Uninstall выполняет rm -rf каталога YAM_ROOT (по
умолчанию /data/yam): удаляются все пакеты v2, база состояния и их данные.
Entware (/opt) и каталог блокировки /tmp/yam не затрагиваются.
yam registry add official https://repo.yse.wtf/v2 \
--key ed25519:5Rz8F47uftWVU5kLgWYhprkEZ4rpP2kecUge/a7KQas=
yam registry list
yam install yam/lunaРеестр official по умолчанию не настроен: перед search и установкой по
имени добавьте его командой yam registry add (см. CLI). На
Micro обёртка /usr/bin/yam уже задаёт платформу, каталог профилей и корень
YAM_ROOT.
Для локальной проверки пакета укажите отдельный каталог:
yam --platform yandexmicro --root ./yam-root install --yes package.yampkgLua, Quasar, веб-интерфейс и старые .yap/plugin.toml находятся в отдельном
проекте Luna, а не в ядре YAM.
На Micro установщик создаёт /usr/bin/yam — ссылку на обёртку
/data/yam/bin/yam-run — и загрузочный скрипт /etc/init.d/S99yam, который
при старте выполняет yam update (ошибка обновления загрузку не прерывает).
На остальных платформах автообновления при загрузке нет: запускайте обёртку
вручную, например adb shell /data/yam/bin/yam-run update.
Обновление принимается только при корректной Ed25519-подписи манифеста из
GitHub Releases; открытый ключ зашивается в бинарник при сборке. Для
публикации нужны repository variable YAM_UPDATE_PUBLIC_KEY и secret
YAM_UPDATE_SIGNING_KEY.