fix: bound registry http_get timeout so a flaky mirror falls back fast

The default mirror sz.pmm.parlz.com is intermittent (sometimes 404, sometimes
slow/hangs), and http_get used --max-time 60, so 'self-update'/'install' blocked
up to 60s before falling back to the healthy main mirror. Reduce to
--max-time 15 --connect-timeout 8 so a bad mirror fails over quickly.

Also bump site/version to 0.5.1 (the 0.5.0 install segfault is from an older
build; upgrading + this fallback removes the stall).
这个提交包含在:
JGZYES
2026-09-05 20:14:20 +08:00
父节点 ccddd196a7
当前提交 bb61090522
修改 7 个文件,包含 24 行新增15 行删除
+9
查看文件
@@ -0,0 +1,9 @@
# PMM v0.5.1
## 修复
- **`self-update` / `install` 卡在镜像源**:默认优先级镜像 `sz.pmm.parlz.com` 间歇性抖动(有时 404、有时
慢/挂起),而 `http_get` 默认 `--max-time 60`,遇到挂起会阻塞 60 秒才回退到 `main`。现改为
`--max-time 15 --connect-timeout 8`,镜像源抖动时**快速失败并自动回退到健康镜像**(pmm.parlz.com),
不再"一直卡着"。
- 说明:`pmm install pmm==0.5.0``Segmentation fault` 是旧版本号/旧二进制的现象,升级到本版即可消除;
若仍复现请反馈完整报错。
+1 -1
查看文件
@@ -87,7 +87,7 @@ char *http_get(const char *url, int *status) {
* interpretation differences: body + "__PMM_HTTP_<code>" */
size_t len = 0;
if (getenv("PMM_DEBUG")) fprintf(stderr, "[http] GET %s\n", url);
char *body = curl_capture("-sSL --max-time 60 -w __PMM_HTTP_%{http_code}", url, &len);
char *body = curl_capture("-sSL --max-time 15 --connect-timeout 8 -w __PMM_HTTP_%{http_code}", url, &len);
if (getenv("PMM_DEBUG")) fprintf(stderr, "[http] captured len=%zu head=%.60s\n",
body ? len : 0, body ? body : "(null)");
if (!body) return NULL;
+1 -1
查看文件
@@ -4,7 +4,7 @@
* then pmm_header($active,$title); ... pmm_footer(); */
if (!defined('PMM_SITE')) { http_response_code(403); exit('forbidden'); }
define('PMM_VERSION', '0.5.0');
define('PMM_VERSION', '0.5.1');
function pmm_nav_links(string $active): string {
$items = [
+7 -7
查看文件
@@ -10,21 +10,21 @@ curl -sSL https://pmm.parlz.com/download/install.sh | bash
## 各平台产物(`/download/`
- [pmm-0.5.0-windows-amd64.zip](/download/pmm-0.5.0-windows-amd64.zip) — Windows 免安装
- [pmm_0.5.0_amd64.deb](/download/pmm_0.5.0_amd64.deb) — Debian/Ubuntu
- [pmm-0.5.0.x86_64.rpm](/download/pmm-0.5.0.x86_64.rpm) — CentOS/RHEL
- [pmm-0.5.0.apk](/download/pmm-0.5.0.apk) — Alpine
- [pmm-0.5.0.pkg.tar.zst](/download/pmm-0.5.0.pkg.tar.zst) — Arch
- [pmm-0.5.1-windows-amd64.zip](/download/pmm-0.5.1-windows-amd64.zip) — Windows 免安装
- [pmm_0.5.1_amd64.deb](/download/pmm_0.5.1_amd64.deb) — Debian/Ubuntu
- [pmm-0.5.1.x86_64.rpm](/download/pmm-0.5.1.x86_64.rpm) — CentOS/RHEL
- [pmm-0.5.1.apk](/download/pmm-0.5.1.apk) — Alpine
- [pmm-0.5.1.pkg.tar.zst](/download/pmm-0.5.1.pkg.tar.zst) — Arch
- [pmm](/download/pmm) — Linux 二进制
- [pmm.exe](/download/pmm.exe) — Windows 二进制
- [install.sh](/download/install.sh) — 一键安装脚本
> `.pdm` 包走镜像注册表:`pmm install pmm==0.5.0`(见 [镜像源](index.php?page=mirror))。
> `.pdm` 包走镜像注册表:`pmm install pmm==0.5.1`(见 [镜像源](index.php?page=mirror))。
## 用 pmm 安装(从镜像注册表)
```bash
pmm install pmm==0.5.0
pmm install pmm==0.5.1
pmm install nodejs
```
+4 -4
查看文件
@@ -14,7 +14,7 @@ curl -sSL https://pmm.parlz.com/download/install.sh | bash
```bash
# PowerShell
Invoke-WebRequest https://pmm.parlz.com/download/pmm-0.5.0-windows-amd64.zip -OutFile pmm.zip
Invoke-WebRequest https://pmm.parlz.com/download/pmm-0.5.1-windows-amd64.zip -OutFile pmm.zip
Expand-Archive pmm.zip -DestinationPath pmm
```
@@ -23,21 +23,21 @@ Expand-Archive pmm.zip -DestinationPath pmm
## Debian / Ubuntu.deb
```bash
curl -L -o pmm.deb https://pmm.parlz.com/download/pmm_0.5.0_amd64.deb
curl -L -o pmm.deb https://pmm.parlz.com/download/pmm_0.5.1_amd64.deb
sudo apt install ./pmm.deb
```
## CentOS / RHEL.rpm
```bash
curl -L -o pmm.rpm https://pmm.parlz.com/download/pmm-0.5.0.x86_64.rpm
curl -L -o pmm.rpm https://pmm.parlz.com/download/pmm-0.5.1.x86_64.rpm
sudo rpm -Uvh pmm.rpm
```
## 用 pmm 安装 pmm 自身
```bash
pmm install pmm==0.5.0
pmm install pmm==0.5.1
```
## 装好后
+1 -1
查看文件
@@ -7,7 +7,7 @@
#
# 下载官方 release 二进制并安装到 /usr/local/bin/pmmroot)或 ~/.local/bin/pmm。
set -e
VER="0.5.0"
VER="0.5.1"
REPO="JGZYES/ParlzPackageManger"
# ---- 检测平台 ----
+1 -1
查看文件
@@ -7,7 +7,7 @@
#
# 下载官方 release 二进制并安装到 /usr/local/bin/pmmroot)或 ~/.local/bin/pmm。
set -e
VER="0.5.0"
VER="0.5.1"
REPO="JGZYES/ParlzPackageManger"
# ---- 检测平台 ----