文件
JGZYES c1906d0111 release: PMM v0.5.3 — mirror layout reform (dists/ + files/) + site version
Mirror restructure under web/mirror:
- dists/packages.json (name list) + dists/<pkg>.json (latest+variants) +
  dists/<pkg>/<version>.json (per-version metadata)
- files/<first-letter>/<pkg>/<ver>-<os>-<arch>.pdm (payloads bucketed by letter)
- registry base in defaults/docs -> .../mirror/dists; all existing packages migrated
  and their url fields rewritten to files/<letter>/<pkg>/...

Code:
- mirrors.c default registry -> /mirror/dists
- main.c language-pack derivation now handles a /dists (or /packages) base -> mirror root /lang
- web/pmu/publish.php writes dists/<name>.json + files/<letter>/<name>/ and the url accordingly

Also syncs site version refs to 0.5.3 and mirrors docs/examples to the new layout.
2026-09-05 22:44:40 +08:00

98 行
2.2 KiB
Markdown

此文件含有模棱两可的 Unicode 字符
此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。
# 打包 .pdm 包
`.pdm` 是 PMM 的包格式(deb 风格),用 `pmm pack` 把一个目录打包成 `.pdm`,供 `pmm install` 安装、并发布到镜像注册表。
## 目录结构
一个可打包的目录需包含 **`pdm-control`** 控制文件,其余任意文件作为包内容:
```
myapp/
├── pdm-control # 必填:包元数据
└── bin/
└── myapp # 可执行文件(或任意要安装的文件)
```
> `bin/` 里的内容安装时会被“摊平”到目标目录;其它目录树原样保留。
## pdm-control 字段
```text
Package: myapp # 必填,包名
Version: 1.0.0 # 必填,版本号
Architecture: linux # windows | linux | macos | all
Description: My App # 描述
Maintainer: You <you@x.com> # 维护者
Depends: libc # 可选,依赖(安装时自动解析)
License: MIT # 可选
Homepage: https://x.com # 可选
```
- **Package / Version 必须**;其余可省略。
- `Architecture` 通常填当前平台(`windows` / `linux` / `macos`)。
## 打包
```bash
pmm pack ./myapp myapp-1.0.0.pdm
```
不指定输出文件名时,默认生成 `<Package>_<Version>.pdm`
```bash
pmm pack ./myapp # -> myapp_1.0.0.pdm
```
## 安装/测试打好的包
```bash
# 本地安装
pmm install ./myapp_1.0.0.pdm
# 查看包信息
pmm info ./myapp_1.0.0.pdm
# 安装到指定目录
pmm install -p /opt/myapp ./myapp_1.0.0.pdm
```
## 发布到镜像
包体在 `web/mirror/files/<首字母>/<name>/`,并往 `web/mirror/dists/<name>.json` 增加一个变体:
```json
{
"name": "myapp",
"version": "1.0.0",
"os": "linux",
"arch": "amd64",
"variants": [
{
"version": "1.0.0",
"os": "linux",
"arch": "amd64",
"file": "1.0.0-linux-amd64.pdm",
"url": "https://pmm.parlz.com/mirror/dists/myapp/1.0.0-linux-amd64.pdm",
"sha256": "<包的 sha256>",
"description": "My App"
}
]
}
```
之后即可:
```bash
pmm install myapp
```
## 校验
打包后建议校验完整性:
```bash
pmm verify ./myapp_1.0.0.pdm
```
详见 [镜像源](index.php?page=mirror) 与 [命令参考](index.php?page=cli)。