升级 version-fox 到 v1.0
把 Windows 平台之前用的 v0.6 版本升级到最新的大版本,记录下之前和现在做的变更。
- 下载镜像
$env:VFOX_GOLANG_MIRROR = "https://mirrors.aliyun.com/golang/"
$env:VFOX_PYTHON_MIRROR = "https://mirrors.aliyun.com/python-release/"
$env:VFOX_NODEJS_MIRROR = "https://mirrors.aliyun.com/nodejs-release/"- 目录结构
- 之前是
$HOME/.version-fox,程序也兼容了旧目录,但向前看,还是换成新的$HOME/.vfox - 之前里面有个
temp目录放 session 级别的信息,现在改为tmp了 - 用 Link Shell Extension 把目录移动到内存盘
- 现在没有 垫片 & PATH | vfox 了,得把 sdk 的 bin 各自加到 PATH 里,没了之前 收集可执行文件到 PATH 的优势,以后想办法弄回来
- 全局安装并启用 SDK
vfox add golang
vfox add python
vfox add nodejs
vfox use golang@1.25.8 -g
vfox use python@3.14.3 -g
vfox use nodejs@25.8.1 -g- 最终系统 PATH 变为这样
===== RUNTIME ADD =====
C:/Users/enihsyou/AppData/Roaming/carapace/bin
===== SYSTEM LEVEL =====
C:\Program Files\PowerShell\7
C:\Program Files\OpenSSH\
C:\WINDOWS\system32
C:\WINDOWS
C:\WINDOWS\System32\WindowsPowerShell\v1.0\
C:\WINDOWS\System32\wbem
C:\Program Files\dotnet\
C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\Common7\Tools
C:\Program Files\Docker\Docker\resources\bin
C:\Program Files\Git\cmd
C:\Program Files\PowerShell\7
C:\Program Files\CMake\bin
C:\Program Files\GitHub CLI\
C:\Program Files\vfox
===== USER LEVEL =====
C:\Users\enihsyou\AppData\Local\Programs\oh-my-posh\bin\
C:\Users\enihsyou\.local\bin
C:\Users\enihsyou\.cargo\bin
C:\Users\enihsyou\.bun\bin
C:\Users\enihsyou\AppData\Local\pnpm
C:\Users\enihsyou\AppData\Local\npm
C:\Users\enihsyou\AppData\Local\go\bin
C:\Users\enihsyou\AppData\Local\Ruby\ruby34\bin
C:\Users\enihsyou\.vfox\sdks\nodejs
C:\Users\enihsyou\.vfox\sdks\python
C:\Users\enihsyou\.vfox\sdks\python\Scripts
C:\Users\enihsyou\.vfox\sdks\golang\bin
C:\Users\enihsyou\.vfox\sdks\golang\packages\bin
C:\Users\enihsyou\AppData\Local\Microsoft\WinGet\Links
C:\Users\enihsyou\AppData\Local\JetBrains\Toolbox\scripts
C:\Users\enihsyou\AppData\Local\Microsoft\WindowsApps
C:\Users\enihsyou\AppData\Local\Microsoft\WinGet\Packages\Gyan.FFmpeg_Microsoft.Winget.Source_8wekyb3d8bbwe\ffmpeg-7.1-full_build\bin
C:\Users\enihsyou\AppData\Local\Microsoft\WinGet\Packages\sourcegit-scm.SourceGit_Microsoft.Winget.Source_8wekyb3d8bbwe\SourceGit
C:\Users\enihsyou\AppData\Local\Programs\Microsoft VS Code\bin
C:\Users\enihsyou\AppData\Local\Programs\Zed\bin
C:\Users\enihsyou\.dotnet\tools
F:\AI\Ollama.app- 移除在 golang 启动会寻找 gcc pwsh 启动脚本中设置的
$env:GOROOT - 调整 WSL2 / GitBash / MSYS2 中的路径引用
Zed 提示因找不到 go 无法使用 gopls
提示 Could not install the Go Language server 'gopls' because 'go' was not found。
- 当然环境变量中是有 go 的,甚至主动安装了 gopls
- 在虚拟机新安装的 Windows 和 Zed 没有问题
- 在我设备上重装 Zed 问题依旧
- 删除 Zed 用户目录(重命名为其他),再次启动 Zed,问题消失
- 恢复 Zed 用户目录,问题不再持续
无法理解。从 文档 和 代码 来看就是读系统的 PATH 环境变量,为什么暂时重置一下用户目录就好了呢…难道内容保存在注册表里?
aria2-zero 线程 CPU 占用持续不降
换完 在 Windows 平台使用上带本地化翻译的 aria2c 一段时间就观察到了,有时在 AriaNG 连上服务器后,aria2c.exe 进程的 CPU 持续保持在 6% 的水平不变。但苦于问题并不是毕现,这次终于又抓到了现场。
从 Process Explorer 提取的 Stack 信息结合 IDA 分析,线程是不断在执行 executeCommand > com->execute()。命令好像都是 HttpServerCommand::execute(),在 read 等待 recv 填满缓存。
看到 TCP/IP 面板有许多处于 CLOSE_WAIT 状态的本地连接没有关闭,有非常多的其他 IO 动作(select 连接),估计是卡在这里了。
从 TCPView 来看,连接是很久之前创建的,在网卡上抓包没有奇怪的 FIN 包。
手动把连接掐断没能打断应用的卡死状态,先靠重启吧。
之前想有一种自动化方式监控进程 CPU 占用,过高就重启,但感觉不够智能还是算了。不排除是 aria2-zero 的 bug。