更新内容
- 更新 依赖版本及最低编译版本
考虑到之前 Go 版本我也更新了,干脆把 CFST 为数不多的依赖也都更新一下算了,因此 go.mod 里的最低编译版本号也改为了 1.18
- 修复 部分情况下无法显示彩色文字的问题
比如 Windows 双击运行等情况下,CFST 输出的彩色文字异常,以及重定向到文件时也会把颜色代码写进去
- 调整 主界面的蓝色文字为青色
蓝色文字在比如 Windows PowerShell 这种默认背景颜色是蓝色的终端中会看不清,改为青色会好点,有配色建议尽管提
复现条件: 在 Windows 系统中通过 Git Bash 来运行 Windows 版的 CFST 时,延迟测速进度条右侧的可用数字颜色会有异常。
问题缘由: 实现进度条功能的第三方库 pb 的间接依赖是 color,进度条右侧的数字颜色就是由 color 处理的,在各种情况下都能正常显示为绿色,因此我为了解决 Windows 下文字颜色异常的直接引入了这个间接依赖 color,结果引入前可用数字颜色还是正常的,引入后成功解决了 Windows 下异常问题,但这个可用数字反而异常了。。。应该是 pb 内的调用的 color 和我引入的 color 同时使用时在这种奇怪条件下冲突了(虽然都是同一个 color),但我也无力解决,不过好在问题影响不大,复现条件也比较复杂,一般人根本遇不到,因此修不修都行~
- 另外我还发现了一个关于 进度条 的已知问题(测试彩色文字时发现的):
复现条件: 在 Windows 系统中,通过 Git Bash 运行 Windows 版的 CFST,通过 CMD+SSH 与 PowerShell+SSH 远程链接 Linux 服务器运行 Linux 版的 CFST 时,本该原地刷新的进度条内容,却变成换行了,一行行的刷屏。
问题缘由: 经过排查后发现,似乎是因为终端缓冲的原因导致进度条刷新不及时,因而本该原地刷新的却被终端当成新内容另起一行了(当进度条速度增长非常快时看起来挺正常的,然而一旦进度条变化频率慢了就会出现这种情况),我估计是实现进度条的这个第三方库 pb 本身与上述组合条件下的环境兼容性问题,我也无法解决。
强烈建议大家在使用 Windows 系统时,安装微软开发的开源现代终端工具 Windows Terminal(微软商店就有,安装后建议设置默认终端为 CMD),或者其他现代终端工具,可以有效避免这些乱七八糟的兼容性问题(而且更好看更美观)。
上面的这些问题其实之前一直都有,但我之所以一直没发现,就是因为我好多年前就用的是 Windows Terminal,导致我这边显示一切正常,压根没注意到这些奇奇怪怪的兼容性问题。。。
国内用户建议从蓝奏云下载:https://xiu.lanzoub.com/b0742hkxe
───────┬──────┬─────┬───────────────────────────────┬───────────────────────────────────
系统 │架构 │32/64│文件选择 │...
───────┼──────┼─────┼───────────────────────────────┼───────────────────────────────────
macOS │x86_64│64 位│cfst_darwin_amd64.zip │最低要求 macOS 11
───────┼──────┼─────┼───────────────────────────────┼───────────────────────────────────
macOS │ARM v8│64 位│cfst_darwin_arm64.zip │最低要求 macOS 11
───────┼──────┼─────┼───────────────────────────────┼───────────────────────────────────
macOS │x86_64│64 位│cfst_darwin_amd64_old.zip │适用于 macOS 10 及旧版本
───────┼──────┼─────┼───────────────────────────────┼───────────────────────────────────
macOS │ARM v8│64 位│cfst_darwin_arm64_old.zip │适用于 macOS 10 及旧版本
───────┼──────┼─────┼───────────────────────────────┼───────────────────────────────────
Linux │x86 │32 位│cfst_linux_386.tar.gz │最低要求 Linux 内核 3.2 (下同)
───────┼──────┼─────┼───────────────────────────────┼───────────────────────────────────
Linux │x86_64│64 位│cfst_linux_amd64.tar.gz │...
───────┼──────┼─────┼───────────────────────────────┼───────────────────────────────────
Linux │ARM v8│64 位│cfst_linux_arm64.tar.gz │ARM v8 指的就是 ARM 64 位
───────┼──────┼─────┼───────────────────────────────┼───────────────────────────────────
Linux │ARM v5│32 位│cfst_linux_armv5.tar.gz │...
───────┼──────┼─────┼───────────────────────────────┼───────────────────────────────────
Linux │ARM v6│32 位│cfst_linux_armv6.tar.gz │...
───────┼──────┼─────┼───────────────────────────────┼───────────────────────────────────
Linux │ARM v7│32 位│cfst_linux_armv7.tar.gz │...
───────┼──────┼─────┼───────────────────────────────┼───────────────────────────────────
Linux │Mips │32 位│cfst_linux_mips.tar.gz │...
───────┼──────┼─────┼───────────────────────────────┼───────────────────────────────────
Linux │Mips │64 位│cfst_linux_mips64.tar.gz │...
───────┼──────┼─────┼───────────────────────────────┼───────────────────────────────────
Linux │Mipsle│32 位│cfst_linux_mipsle.tar.gz │...
───────┼──────┼─────┼───────────────────────────────┼───────────────────────────────────
Linux │Mipsle│64 位│cfst_linux_mips64le.tar.gz │...
───────┼──────┼─────┼───────────────────────────────┼───────────────────────────────────
Windows│x86 │32 位│cfst_windows_386.zip │最低要求 Windows 10 + Server 2016
───────┼──────┼─────┼───────────────────────────────┼───────────────────────────────────
Windows│x86_64│64 位│cfst_windows_amd64.zip │最低要求 Windows 10 + Server 2016
───────┼──────┼─────┼───────────────────────────────┼───────────────────────────────────
Windows│x86 │32 位│cfst_windows_386_old.zip │适用于 Windows 7/8 + Server
│ │ │ │2008/2012
───────┼──────┼─────┼───────────────────────────────┼───────────────────────────────────
Windows│x86_64│64 位│cfst_windows_amd64_old.zip │适用于 Windows 7/8 + Server
│ │ │ │2008/2012
───────┼──────┼─────┼───────────────────────────────┼───────────────────────────────────
Windows│ARM v8│64 位│cfst_windows_arm64.zip │提供给 ARM 架构的,别下错了!
───────┴──────┴─────┴───────────────────────────────┴───────────────────────────────────
因为 Go 新版本不再支持一些系统的老旧版本了(上面有写),因此我专门搞了个旧版本 Go v1.20 来编译适用于老旧系统版本的 CFST,但不确定是否有其他问题(没条件测试),而且就算有也不考虑对其单独修复,望悉知。
路由器(硬)一般是 Mips、Mipsle、ARM 架构,可以通过运行 uname -m;cat /proc/cpuinfo|grep 'model name' 命令来判断(如输出 aarch64 指的就是 ARM v8(或叫 ARM64)),实在不清楚可以挨个都试试,能正常运行就代表选对了。
路由器如果是 OpenWrt 固件,也可以尝试使用原生 OpenWrt 编译版本:原生 OpenWrt 编译运行支持
Android 手机基本都是 ARM 架构,自行检查是 32 位(v5 / v6 / v7)还是 64 位(v8):Android 手机运行教程
IOS 手机要取决于安装的虚拟机是什么架构,有兴趣的可以参考一下:IOS 手机运行教程
Linux 系统中解压 tar.gz 压缩格式的命令示例:tar -zxf cfst_linux_XXX.tar.gz
macOS 系统下通过命令行终端进入 CFST 目录,和 Linux 系统一样使用 ./cfst 命令来运行(使用方式基本没区别)。