install: show download progress in install.sh (--progress-bar); download.php copies install command instead of downloading sh; add CHANGELOG/<version>.md (0.2.9)

这个提交包含在:
JGZYES
2026-09-02 21:21:51 +08:00
父节点 843e9eea5b
当前提交 ff9811eb5f
修改 5 个文件,包含 52 行新增7 行删除
+34
查看文件
@@ -0,0 +1,34 @@
# PMM v0.2.9
跨平台 C 语言包管理器(Windows / Linux / macOS)。
## 新增功能
- **依赖解析**`pdm-control` 支持 `Depends: pkg (>= 1.0), ...`,registry 包支持 `"depends": [...]`;安装时自动从镜像递归解析并安装依赖,支持版本约束(`==`/`>=`/`<=`/`>`/`<`),带循环/重复防护。
- **并发分片下载 + 断点续传**:≥8MB 文件自动 4 路 Range 并行分片下载、逐片续传(`.part.N`)、拼接后校验;失败自动回退单流;Windows 单流 + `curl -C -` 续传。进度条含已用/剩余时间与实时速度。
- `pmm search <关键词>`:在镜像注册表搜包(`packages.json` 索引)。
- `pmm info <包名|文件.pdm>`:查看 registry 包信息 / 本地 .pdm 控制信息。
- `pmm verify <文件>`:打印 SHA-256 / SHA-1。
- `pmm cache clean`:清空下载缓存。
- `pmm install --no-cache`:强制重新下载。
- `pmm install <https://...>`:从 URL 直接安装(按扩展名识别)。
- `pmm install -dpkg x.deb`Linux/ `-msi x.msi`(Windows):本地按类型安装,且支持 URL 强制类型。
- `pmm install --git repo@tag` / `-b branch`:安装指定 release tag / ref。
- **打包 .rpm**Linux):`pmm-<ver>.x86_64.rpm`,同时给出 .deb / zip / install.sh。
## 修复
- `--git` 资产平台匹配:拒绝跨平台文件名(android/windows/darwin),下载后校验裸二进制是否为原生可执行,不行则回退 os 命名资产。
- deb `Version` 必须以数字开头(非 tag 构建兜底 0.0.0-dev)。
- `install_path` 前置声明;HTTP status 标记对 Linux 稳健。
## 官网
- 四页化:首页 + 特性 / 安装 / 下载 / 服务状态。
- 服务状态:多端点探测(注册表/下载/Web)+ 延迟 + Server 头 + 检测时间,自动刷新。
- 源码浏览页 `source.php`(GitHub 风格,克隆本仓库读取 git 文件)。
- 图标使用仓库根目录 `icon.png`115×77)。
## 安装
```bash
# Linux / macOS 一键
curl -sSL https://pmm.parlz.com/install.sh | bash
# Windows:解压 pmm-0.2.9-windows-amd64.zip,把 pmm.exe 加入 PATH
```
+6 -3
查看文件
@@ -20,9 +20,12 @@
/* ---------- Copy command buttons ---------- */
document.querySelectorAll(".copy-btn").forEach(function (btn) {
btn.addEventListener("click", function () {
var code = document.querySelector('[data-pane="' + btn.getAttribute("data-copy") + '"] code');
if (!code) return;
var txt = code.innerText;
var txt = btn.getAttribute("data-copy-text");
if (!txt) {
var code = document.querySelector('[data-pane="' + btn.getAttribute("data-copy") + '"] code');
if (!code) return;
txt = code.innerText;
}
(navigator.clipboard && navigator.clipboard.writeText)
? navigator.clipboard.writeText(txt).then(ok, fail)
: fallback(txt);
+3
查看文件
@@ -211,3 +211,6 @@ code{font-family:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,"Co
.mdbody li{margin:3px 0 3px 18px}
.mdbody hr{border:0;border-top:1px solid var(--line);margin:14px 0}
.mdbody code{background:var(--panel2);padding:1px 6px;border-radius:4px}
/* download copy-command card */
.dl-cmd{margin-top:8px;border:1px solid var(--line);border-radius:8px;padding:10px 12px;background:#0a0e15}
.dl-cmd code{font-size:12.5px;white-space:pre-wrap;word-break:break-all;color:#d0d0d0}
+6 -3
查看文件
@@ -18,9 +18,12 @@ pmm_page_open('DOWNLOAD', '下载 PMM');
<a class="dl-card" href="downloads/pmm-<?php echo PMM_VERSION; ?>.x86_64.rpm" download>
<span class="dl-os">Linux</span><span class="dl-file">pmm-<?php echo PMM_VERSION; ?>.x86_64.rpm</span><span class="dl-arrow">↓</span>
</a>
<a class="dl-card" href="install.sh" download>
<span class="dl-os">Linux/macOS</span><span class="dl-file">install.sh · 一键安装</span><span class="dl-arrow"></span>
</a>
<div class="dl-card">
<span class="dl-os">Linux/macOS</span>
<span class="dl-file">一键安装 · 复制命令</span>
<div class="dl-cmd"><code>curl -sSL https://pmm.parlz.com/install.sh | bash</code></div>
<button class="copy-btn" data-copy-text="curl -sSL https://pmm.parlz.com/install.sh | bash" type="button">复制命令</button>
</div>
<a class="dl-card" href="https://github.com/JGZYES/ParlzPackageManger/releases/latest" target="_blank" rel="noopener">
<span class="dl-os">全部</span><span class="dl-file">GitHub Releases / 源码</span><span class="dl-arrow"></span>
</a>
+3 -1
查看文件
@@ -30,9 +30,11 @@ if [ "$arch" != "amd64" ]; then
fi
echo "pmm: 下载 v$VER ($os/$arch) ..."
TMP="$(mktemp)"
if ! curl -fsSL --max-time 120 -o "$TMP" "$URL"; then
# --progress-bar shows a live download progress line (tty only)
if ! curl -fL --progress-bar --max-time 300 -o "$TMP" "$URL"; then
rm -f "$TMP"; echo "pmm: 下载失败($URL"; exit 1
fi
echo ""
chmod +x "$TMP"
# ---- 安装 ----