Files
MeowOS-For-R3P2/mips-repo/mpk/README.md
T

50 lines
2.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# mips-repo/mpk/ — MeowOS `.mpk` 软件包仓库
本目录存放 MeowAPPs 的成品**`.mpk`** 软件包(应用分发单元),供 `nyai` 安装。规范见
`APPS.md 附录 §3(.mpk) / §5(nyai)`,此处为速览与示例。
目前仓库为**空**(仅说明);首个包入仓后形如:
```
mpk/
README.md # 本文件
<pkg>.mpk # 成品包(tar.gz)
Packages # 可选:nyai index mpk/ 生成的索引
```
## `.mpk` 规范
- **包名 `<pkg>` = 文件名茎 = `app.json` 的 `package`**(如 `os.meow.hello` → `os.meow.hello.mpk`)。
- **格式**:`.mpk` = **tar.gz**,含 `app.json` + `meow` 二进制 + 资源,**不含 `data`/`cache`**
(运行时按设备生成)。打包目录为 `MeowAPPs/<包名>/`(剔除 data/cache 后打包)。
- **关键字段**(在 `app.json` 内,`package` 必填):`package`/`name`/`version`/`exec`/
`routes`/`services`/`depends`/`description` 等;`size`/`sha256` 由索引生成。
- **安装**:`nyai install <包或文件.mpk>`(读 `.mpk` 内 `app.json`,校验包名/哈希,解压到
`MeowAPPs/<包名>/`,同名先备份 `.bak_<pid>`,触发数据 init 建 `MeowData/<包名>/{data,cache}`)。
- **导出**:`nyai export <pkg> [out.mpk]`(打包 `MeowAPPs/<pkg>/`,不含 data/cache)。
- **索引**:`nyai index <dir>` 为目录生成 `Packages`(每行 `Package/Version/Filename/Size/SHA256/
Depends/Description`,空行分隔记录),供经源(`sources.list`)安装解析依赖。
## 示例(结构示意)
以 `os.meow.hello` 为例,打包自 `MeowAPPs/os.meow.hello/`:
```bash
# 打包导出
nyai export os.meow.hello # → os.meow.hello.mpk
# 或手动:剔除 data/cache 后 tar.gz(与 launcher 同 gzip -dc | tar -x 管道语义)
cd MeowAPPs/os.meow.hello && tar czf os.meow.hello.mpk app.json meow assets/
# 本地源目录 + 索引生成
mkdir -p /usr/data/mnt/sd_0/MeowOS/opt/repo
cp os.meow.hello.mpk /usr/data/mnt/sd_0/MeowOS/opt/repo/
nyai index /usr/data/mnt/sd_0/MeowOS/opt/repo # 生成 Packages
# 在设备上安装(M2.12+ 可直呼 nyai;更早固件用绝对路径)
nyai install os.meow.hello # 或 nyai install os.meow.hello.mpk
```
> 注:`nyai` 部署于卡 `MeowOS/opt/bin/nyai`(M2.12+ 由 `meow_card_path.sh` 前插 PATH 可直呼)。
> 卡上源配置 `MeowOS/opt/nyai/sources.list`(无此文件默认本地源 `MeowOS/opt/repo`)。