Skip to content
nyakokitsuPublic

About

Модульная система взаимодействия со Станциями.

Resources

Stars

150 stars

Watchers

1 watching

Forks

Latest commit

 

History

180 Commits

Folders and files

Repository files navigation

YAM

Менеджер пакетов для Яндекс Станций.

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 | sh

Windows (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.yampkg

Документация

Lua, 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.

About

Модульная система взаимодействия со Станциями.

Resources

Stars

150 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages