镜像自地址
https://github.com/JGZYES/ParlzPackageManger.git
已同步 2026-09-11 05:42:44 +08:00
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).
这个提交包含在:
@@ -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>" */
|
* interpretation differences: body + "__PMM_HTTP_<code>" */
|
||||||
size_t len = 0;
|
size_t len = 0;
|
||||||
if (getenv("PMM_DEBUG")) fprintf(stderr, "[http] GET %s\n", url);
|
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",
|
if (getenv("PMM_DEBUG")) fprintf(stderr, "[http] captured len=%zu head=%.60s\n",
|
||||||
body ? len : 0, body ? body : "(null)");
|
body ? len : 0, body ? body : "(null)");
|
||||||
if (!body) return NULL;
|
if (!body) return NULL;
|
||||||
|
|||||||
+1
-1
@@ -4,7 +4,7 @@
|
|||||||
* then pmm_header($active,$title); ... pmm_footer(); */
|
* then pmm_header($active,$title); ... pmm_footer(); */
|
||||||
if (!defined('PMM_SITE')) { http_response_code(403); exit('forbidden'); }
|
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 {
|
function pmm_nav_links(string $active): string {
|
||||||
$items = [
|
$items = [
|
||||||
|
|||||||
+7
-7
@@ -10,21 +10,21 @@ curl -sSL https://pmm.parlz.com/download/install.sh | bash
|
|||||||
|
|
||||||
## 各平台产物(`/download/`)
|
## 各平台产物(`/download/`)
|
||||||
|
|
||||||
- [pmm-0.5.0-windows-amd64.zip](/download/pmm-0.5.0-windows-amd64.zip) — Windows 免安装
|
- [pmm-0.5.1-windows-amd64.zip](/download/pmm-0.5.1-windows-amd64.zip) — Windows 免安装
|
||||||
- [pmm_0.5.0_amd64.deb](/download/pmm_0.5.0_amd64.deb) — Debian/Ubuntu
|
- [pmm_0.5.1_amd64.deb](/download/pmm_0.5.1_amd64.deb) — Debian/Ubuntu
|
||||||
- [pmm-0.5.0.x86_64.rpm](/download/pmm-0.5.0.x86_64.rpm) — CentOS/RHEL
|
- [pmm-0.5.1.x86_64.rpm](/download/pmm-0.5.1.x86_64.rpm) — CentOS/RHEL
|
||||||
- [pmm-0.5.0.apk](/download/pmm-0.5.0.apk) — Alpine
|
- [pmm-0.5.1.apk](/download/pmm-0.5.1.apk) — Alpine
|
||||||
- [pmm-0.5.0.pkg.tar.zst](/download/pmm-0.5.0.pkg.tar.zst) — Arch
|
- [pmm-0.5.1.pkg.tar.zst](/download/pmm-0.5.1.pkg.tar.zst) — Arch
|
||||||
- [pmm](/download/pmm) — Linux 二进制
|
- [pmm](/download/pmm) — Linux 二进制
|
||||||
- [pmm.exe](/download/pmm.exe) — Windows 二进制
|
- [pmm.exe](/download/pmm.exe) — Windows 二进制
|
||||||
- [install.sh](/download/install.sh) — 一键安装脚本
|
- [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 安装(从镜像注册表)
|
## 用 pmm 安装(从镜像注册表)
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
pmm install pmm==0.5.0
|
pmm install pmm==0.5.1
|
||||||
pmm install nodejs
|
pmm install nodejs
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
+4
-4
@@ -14,7 +14,7 @@ curl -sSL https://pmm.parlz.com/download/install.sh | bash
|
|||||||
|
|
||||||
```bash
|
```bash
|
||||||
# PowerShell
|
# 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
|
Expand-Archive pmm.zip -DestinationPath pmm
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -23,21 +23,21 @@ Expand-Archive pmm.zip -DestinationPath pmm
|
|||||||
## Debian / Ubuntu(.deb)
|
## Debian / Ubuntu(.deb)
|
||||||
|
|
||||||
```bash
|
```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
|
sudo apt install ./pmm.deb
|
||||||
```
|
```
|
||||||
|
|
||||||
## CentOS / RHEL(.rpm)
|
## CentOS / RHEL(.rpm)
|
||||||
|
|
||||||
```bash
|
```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
|
sudo rpm -Uvh pmm.rpm
|
||||||
```
|
```
|
||||||
|
|
||||||
## 用 pmm 安装 pmm 自身
|
## 用 pmm 安装 pmm 自身
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
pmm install pmm==0.5.0
|
pmm install pmm==0.5.1
|
||||||
```
|
```
|
||||||
|
|
||||||
## 装好后
|
## 装好后
|
||||||
|
|||||||
+1
-1
@@ -7,7 +7,7 @@
|
|||||||
#
|
#
|
||||||
# 下载官方 release 二进制并安装到 /usr/local/bin/pmm(root)或 ~/.local/bin/pmm。
|
# 下载官方 release 二进制并安装到 /usr/local/bin/pmm(root)或 ~/.local/bin/pmm。
|
||||||
set -e
|
set -e
|
||||||
VER="0.5.0"
|
VER="0.5.1"
|
||||||
REPO="JGZYES/ParlzPackageManger"
|
REPO="JGZYES/ParlzPackageManger"
|
||||||
|
|
||||||
# ---- 检测平台 ----
|
# ---- 检测平台 ----
|
||||||
|
|||||||
+1
-1
@@ -7,7 +7,7 @@
|
|||||||
#
|
#
|
||||||
# 下载官方 release 二进制并安装到 /usr/local/bin/pmm(root)或 ~/.local/bin/pmm。
|
# 下载官方 release 二进制并安装到 /usr/local/bin/pmm(root)或 ~/.local/bin/pmm。
|
||||||
set -e
|
set -e
|
||||||
VER="0.5.0"
|
VER="0.5.1"
|
||||||
REPO="JGZYES/ParlzPackageManger"
|
REPO="JGZYES/ParlzPackageManger"
|
||||||
|
|
||||||
# ---- 检测平台 ----
|
# ---- 检测平台 ----
|
||||||
|
|||||||
在新工单中引用
屏蔽一个用户