Skip to content

v2.3.4 更新 依赖版本、修复 彩色文字异常

Latest
Compare
Choose a tag to compare
@XIU2 XIU2 released this 22 Jul 12:12
· 1 commit to master since this release

更新内容

  1. 更新 依赖版本及最低编译版本
    考虑到之前 Go 版本我也更新了,干脆把 CFST 为数不多的依赖也都更新一下算了,因此 go.mod 里的最低编译版本号也改为了 1.18
  2. 修复 部分情况下无法显示彩色文字的问题
    比如 Windows 双击运行等情况下,CFST 输出的彩色文字异常,以及重定向到文件时也会把颜色代码写进去
  3. 调整 主界面的蓝色文字为青色
    蓝色文字在比如 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 命令来运行(使用方式基本没区别)。