文件
JGZYES 1b152e950b fix: pmm self install/upgrade now takes effect immediately
- pdm_install_file: when the 'pmm' package is installed, copy the freshly
  built binary over the currently-running pmm path (e.g. /usr/local/bin/pmm)
  and clear the shell command hash, so 'pmm -v' reflects the new version
  without a manual 'hash -r'. Falls back to a hint when the target dir is
  not writable (non-root).
- pmm_add_to_path: prepend PMM dirs on Windows instead of appending, so
  ~/.pmm/root takes priority over /usr/local/bin (matches Linux .bashrc).
- release.yml: add -D_GNU_SOURCE so newer gcc exposes strdup/popen/realpath
  (fixes implicit-declaration build errors).
- CHANGELOG/0.3.7.md
2026-09-05 14:39:29 +08:00

14 行
981 B
Markdown

# PMM v0.3.7
## 修复
- **安装/升级 `pmm` 自身后「不生效」**:之前新二进制只装进 `~/.pmm/root`,从不覆盖当前正在运行的 pmm 路径,
导致 apt 装的 `/usr/local/bin/pmm` 一直挡在前面、或升级后需 `hash -r` 才生效。现在安装 `pmm` 包时会把新二进制
**同步覆盖到当前运行的 pmm 路径**(如 `/usr/local/bin/pmm`)并自动执行 `hash -r``pmm -v` 立即显示新版本。
- Windows 上 `pmm_add_to_path`**append** 改为 **prepend**:PMM 目录排在 PATH 前面,避免被 `/usr/local/bin`
等系统目录覆盖(与 Linux 的 `~/.bashrc` 行为一致)。
- 构建命令增加 `-D_GNU_SOURCE`,修复新版 gcc 下 `strdup`/`popen`/`realpath` 的隐式声明编译错误。
## 说明
- 若运行用户无权限覆盖 `/usr/local/bin/pmm`(非 root),会打印黄色提示:新版本位于
`~/.pmm/root/usr/local/bin/pmm`,请将其加入 PATH 并在当前 shell 运行 `hash -r`