Ubuntu 22.04 安装 WTFUtil 0.51.0 指南

Ubuntu 22.04 实测安装 WTFUtil v0.51.0:官方二进制(SHA256 校验)、go install、源码 make install 三路径全回显,含版本选型、升级降级、卸载与 TERM/GOPROXY/落点误导排障实录。

WTFUtilLinuxUbuntu系统监控CLI2026/10/23

Ubuntu 22.04 安装 WTFUtil 0.51.0 指南

目标:在 Ubuntu 22.04 服务器上从零安装终端个人信息仪表盘 WTFUtil(GitHub 仓库 wtfutil/wtf,命令名 wtfutil),覆盖版本选型、官方二进制(推荐)、go install、源码编译三条安装路径的完整命令与实测回显,以及升级、多版本共存、卸载与排障实录。全文命令与输出均在 Ubuntu 22.04.5 LTS(x86_64)实测通过,实测版本为 v0.51.0(查询日期 2026-10-23)。

一、环境信息

  • 操作系统:Ubuntu 22.04.5 LTS(实测回显见下);
  • 架构:x86_64;
  • WTFUtil 版本:v0.51.0(GitHub 最新稳定版,查询日期 2026-10-23);
  • 许可证:MPL-2.0;
  • 系统版本实测回显:
cat /etc/os-release | head -3
uname -m

实测输出:

PRETTY_NAME="Ubuntu 22.04.5 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
x86_64

二、前置条件

2.1 网络与基础工具

安装过程需要 curl(下载发布件)、tar/sha256sum(系统自带);走源码编译路径还需要 git 与 make,走 go install 路径需要 Go 1.26.4 工具链(见方案 B)。先更新索引并安装基础工具:

sudo apt-get update
sudo apt-get install -y curl tmux ca-certificates git make

实测输出(索引更新末尾,节选):

Hit:2 http://security.ubuntu.com/ubuntu jammy-security InRelease
Hit:3 http://archive.ubuntu.com/ubuntu jammy-updates InRelease
Hit:4 http://archive.ubuntu.com/ubuntu jammy-backports InRelease
Reading package lists...

工具版本实测回显:

curl --version | head -1
tmux -V
git --version
make --version | head -1
curl 7.81.0 (x86_64-pc-linux-gnu) libcurl/7.81.0 OpenSSL/3.0.2 zlib/1.2.11 brotli/1.0.9 zstd/1.4.8 libidn2/2.3.2 libpsl/0.21.0 (+libidn2/2.3.2 libssh/0.9.6/openssl/zlib nghttp2/1.43.1 librtmp/1.43.1 OpenLDAP/2.5.20)
tmux 3.2a
git version 2.34.1
GNU Make 4.3

💡 说明:tmux 非必装,但 WTFUtil 是全屏 TUI 程序,用 tmux 会话托管最方便(断开 SSH 后仪表盘仍在跑,重连 tmux attach 即可看到原画面)。后续验证均以 tmux 会话演示。

2.2 运行前提

WTFUtil 是前台 TUI 程序,需要:一个可交互的终端(TTY)、TERM 环境变量指向有效终端类型(如 xterm-256color)。在无 TTY 的非交互环境(如定时任务、部分远程执行通道)直接运行会报 ERROR terminal entry not found: term not set,这不是安装问题,见「九、常见问题」Q1。

三、版本选型说明

3.1 版本选择

查询 GitHub Releases(2026-10-23),最新稳定版为 v0.51.0,构建时间 2026-09-29T16:08:28Z,实测安装该版本。项目 2026 年起正从 "WTF" 更名为 Tessera(仓库将迁移至 github.com/linodians/tessera),v0.51.0 同时发布两套命名规则的压缩包,内容为同一次构建:

发布件命名内含二进制适用
wtf_0.51.0_linux_amd64.tar.gzwtfutil延续既有习惯,推荐
tessera--v0.51.0--linux-amd64.tar.gztessera跟随新命名

关键解读:两套包里的二进制功能完全相同(同为 v0.51.0 构建,--version 输出一致);本指南主线路径安装旧名二进制并命名为 wtfutil,与官方文档、示例一致。

3.2 v0.51.0 发布件清单与校验值

v0.51.0 共 11 个文件:5 个旧名 tar.gz(darwin amd64/arm64、linux amd64/arm64/armv6)、5 个新名 tar.gz(darwin amd64/arm64、linux amd64/arm64/armv7)与 1 个总校验文件 tessera_0.51.0_checksums.txt(内含全部 10 个压缩包的 SHA256)。官方没有提供 deb/rpm 包——实查 v0.46.0、v0.49.0、v0.50.0、v0.51.0 四个版本的发布件清单均无 .deb/.rpm,Ubuntu 亦无官方 apt 仓库,Ubuntu 上的正规安装路径就是本文的三条方案(二进制/go install/源码)。

本机使用的 linux-amd64 压缩包官方 SHA256(摘自 tessera_0.51.0_checksums.txt):

a2fa4407711a6d2b0103663a9ef47b0f0a7a6031a3ec1b9f7eb8aa55e86a1133  tessera--v0.51.0--linux-amd64.tar.gz
5b1670e8a6a2bfcddf699bccbaae6b53263d75b87ef099d8e2a837c1d5ffc81b  wtf_0.51.0_linux_amd64.tar.gz

四、方案 A:官方二进制安装(推荐)

本方案直接使用官方 goreleaser 产物,不引入编译工具链,最快、最可控,适合绝大多数服务器。

4.1 下载发布件

cd /root
curl -LO https://github.com/wtfutil/wtf/releases/download/v0.51.0/wtf_0.51.0_linux_amd64.tar.gz
curl -LO https://github.com/wtfutil/wtf/releases/download/v0.51.0/tessera_0.51.0_checksums.txt

实测输出(ls -la *.tar.gz *.txt):

-rw-r--r-- 1 root root 22765499 Oct 23 07:03 wtf_0.51.0_linux_amd64.tar.gz
-rw-r--r-- 1 root root      999 Oct 23 07:03 tessera_0.51.0_checksums.txt

⚠️ 下载较慢时可改走代理:curl -x http://<代理地址>:<端口> -LO <URL>,或先 export http_proxy=http://<代理地址>:<端口> https_proxy=http://<代理地址>:<端口> 再执行下载。

4.2 校验 SHA256

把官方校验文件中本平台的行取出来做全量比对:

sha256sum -c tessera_0.51.0_checksums.txt 2>&1 | grep -E "OK|FAILED"

实测输出(只下载了 linux-amd64 两个包,其余报 FAILED open or read 属正常现象,见 FAQ Q5):

tessera--v0.51.0--linux-amd64.tar.gz: OK
wtf_0.51.0_linux_amd64.tar.gz: OK

也可以只算单个文件的哈希与官方值人工比对:

sha256sum wtf_0.51.0_linux_amd64.tar.gz
5b1670e8a6a2bfcddf699bccbaae6b53263d75b87ef099d8e2a837c1d5ffc81b  wtf_0.51.0_linux_amd64.tar.gz

与 3.2 节官方值一致,校验通过。

4.3 解压与安装

mkdir -p wtf-old
tar xzf wtf_0.51.0_linux_amd64.tar.gz -C wtf-old
ls -la wtf-old/

实测输出:

total 74792
drwxr-xr-x 2 root root     4096 Oct 23 07:03 .
drwx------ 1 root root     4096 Oct 23 07:03 ..
-rw-r--r-- 1 1001 1001    14881 Sep 29 16:21 LICENSE.md
-rw-r--r-- 1 1001 1001     8190 Sep 29 16:21 README.md
-rwxr-xr-x 1 1001 1001 76550409 Sep 29 16:27 wtfutil

包内三件套:许可证、README、单个约 76MB 的静态二进制 wtfutil(Go 静态编译,无任何运行时依赖)。把二进制安装到系统路径:

install -m 0755 /root/wtf-old/wtfutil /usr/local/bin/wtfutil

4.4 验证安装

wtfutil --version

实测输出:

WTF v0.51.0 (built: 2026-09-29T16:08:28Z)

退出码验证(应返回 0):

wtfutil --version >/dev/null; echo "exit=$?"
exit=0

再启动一次 TUI 做最终验证(在 tmux 会话中执行,退出键为 q):

tmux new-session -d -s wtf -x 100 -y 20 'wtfutil; echo EXIT=$?; sleep 30'
sleep 5
tmux capture-pane -t wtf -p | head -3

实测输出(默认配置下的仪表盘顶部,节选):

┌─ ~/.config/wtf/config.yml 1 ─┐┌────────── Clocks A ──────────┐┌────────── Clocks B ──────────┐
│                              ││ Toronto      03:04 EDT   Oct ││ Barcelona    09:04 CEST  Oct │
│wtf:                          ││ Vancouver    00:04 PDT   Oct ││ Dubai        11:04 +04   Oct │

首次运行自动创建了配置目录与默认配置文件(ls -la ~/.config/wtf/ 实测):

total 16
drwxr-xr-x 2 root root 4096 Oct 23 07:04 .
drwxr-xr-x 3 root root 4096 Oct 23 07:04 ..
-rw------- 1 root root 2004 Oct 23 07:04 config.yml
-rw------- 1 root root   98 Oct 23 07:04 log.txt

到此方案 A 安装完成。配置文件结构与模块参数逐项说明见 《WTFUtil 0.51.0 配置参数详解》(专栏配置篇)。

4.5 新名包(tessera)的平行验证

如需跟随新命名,下载 tessera--v0.51.0--linux-amd64.tar.gz 解压后得到 tessera 二进制(ls -la tessera-new/ 实测):

total 74792
drwxr-xr-x 2 root root     4096 Oct 23 07:03 .
drwx------ 1 root root     4096 Oct 23 07:03 ..
-rw-r--r-- 1 1001 1001    14881 Sep 29 16:21 LICENSE.md
-rw-r--r-- 1 1001 1001     8190 Sep 29 16:21 README.md
-rwxr-xr-x 1 1001 1001 76550409 Sep 29 16:27 tessera

tessera --version 实测输出(与 wtfutil 完全一致的版本串):

WTF v0.51.0 (built: 2026-09-29T16:08:28Z)

五、方案 B:go install 安装

本方案用 Go 工具链从官方模块仓库拉取源码编译安装,适合已有 Go 环境、希望与团队其他 Go 工具统一管理的服务器。缺点是耗时(全量编译)且产物名与官方发布件不同(见 5.3)。

5.1 安装 Go 1.26.4 工具链

仓库 go.mod 声明 go 1.26.4(2026-10-23 查询),而 Ubuntu 22.04 官方源里的 golang-go 是 1.18,版本不满足要求,必须用官方 tarball 安装新版 Go:

cd /root
curl -LO https://go.dev/dl/go1.26.4.linux-amd64.tar.gz
tar -C /usr/local -xzf go1.26.4.linux-amd64.tar.gz
/usr/local/go/bin/go version

实测输出:

go version go1.26.4 linux/amd64

把 Go 纳入 PATH(写入 /etc/profile.d/go.sh 并生效):

echo 'export PATH=/usr/local/go/bin:$HOME/go/bin:$PATH' > /etc/profile.d/go.sh
source /etc/profile.d/go.sh
go version
go version go1.26.4 linux/amd64

5.2 执行 go install

go install github.com/wtfutil/wtf@latest

实测输出(编译期间无关键输出,完成后检查产物):

go-install-exit=0

⚠️ 排障实录:第一次执行时使用了国内模块代理 GOPROXY=https://proxy.golang.cn,direct,经代理转发时报 read tcp <本机地址>-><代理地址>: read: connection reset by peer,下载失败。定位为该代理链路对模块仓库不稳定,改用官方模块代理并让 HTTP 走代理后成功:export GOPROXY=https://proxy.golang.org,direct http_proxy=http://<代理地址>:<端口> https_proxy=http://<代理地址>:<端口>,随后 go install github.com/wtfutil/wtf@latest 顺利完成(退出码 0)。

5.3 验证与命名说明

go install 产物落在 $HOME/go/bin/,注意二进制名是 wtf 而不是 wtfutil(模块路径的末段即产物名),与 shell 中 BSD 系的 wtf 命令重名风险更高,建议重命名为 wtfutil 再投放到系统路径:

ls -la ~/go/bin/
total 103268
drwxr-xr-x 2 root root      4096 Oct 23 07:12 .
drwxr-xr-x 4 root root      4096 Oct 23 07:12 ..
-rwxr-xr-x 1 root root 105737500 Oct 23 07:12 wtf
~/go/bin/wtf --version
WTF v0.51.0
Note: This is an unofficial release.

版本串多出一行 Note: This is an unofficial release.——这是源码构建版的自带提示(区别于 goreleaser 官方发布件),功能不受影响。若要统一命令名:

install -m 0755 ~/go/bin/wtf /usr/local/bin/wtfutil
wtfutil --version
WTF v0.51.0
Note: This is an unofficial release.

六、方案 C:源码编译安装(make install)

本方案克隆源码仓库后用项目自带 Makefile 构建,适合需要改动源码、或要固定到特定 commit 的场景。前置:已按 5.1 装好 Go 工具链,且有 git、make。

cd /root
git clone --depth 1 --branch v0.51.0 https://github.com/wtfutil/wtf.git wtf-src
cd wtf-src
make install

实测输出(git clone 末尾与 make install 全量):

Turn off this advice by setting config variable advice.detachedHead to false

  \            /       |  |     |   __|
   \    /\    /        |  |     |  |
    \__/  \__/         |__|     |__|

Installing wtfutil with go version go1.26.4 linux/amd64...
wtfutil installed into /usr/local/bin/wtfutil

⚠️ 排障实录(重要):make install 打印的 "wtfutil installed into /usr/local/bin/wtfutil" 具有误导性——看 Makefile 源码(第 98 行 install 目标)可知,它执行的是 go install -ldflags="-s -w",产物实际落在 $HOME/go/bin/,结尾的 installed into ... 只是 which wtfutil 的回显,找到的是你之前装的旧二进制。实测确认:

ls -la /root/go/bin/
total 74592
drwxr-xr-x 2 root root     4096 Oct 23 07:21 .
drwxr-xr-x 4 root root     4096 Oct 23 07:12 ..
-rwxr-xr-x 1 root root 76370082 Oct 23 07:21 wtf

产物名是 wtf(同方案 B),但因为是按 v0.51.0 tag 且带官方 ldflags 构建的,版本串反而是完整构建信息、没有 unofficial 提示:

/root/go/bin/wtf --version
WTF v0.51.0 (built: 2026-09-29T16:08:28Z)

要把本方案产物投放到系统路径并使用标准命令名:

install -m 0755 /root/go/bin/wtf /usr/local/bin/wtfutil
wtfutil --version
WTF v0.51.0 (built: 2026-09-29T16:08:28Z)

日常安装无需走本方案,选方案 A 即可。

七、方案对比与选择建议

维度A 官方二进制B go installC 源码编译
版本新鲜度官方发布版跟随模块仓库 @latest固定到任意 tag/commit
需要编译工具链否是(Go 1.26.4)是(Go 1.26.4 + git + make)
安装耗时秒级(下载为主)分钟级(全量编译)分钟级(全量编译)
产物名与落点wtfutil(新名包为 tessera)wtf,落 $HOME/go/bin/(需手动改名)wtf,落 $HOME/go/bin/(需手动改名;installed into 回显有误导,见方案 C 排障实录)
--version 特征WTF v0.51.0 (built: <时间>)多一行 Note: This is an unofficial release.WTF v0.51.0 (built: <时间>)(tag 构建带完整信息)
适用场景绝大多数服务器(推荐)已有 Go 工具链统一管理二次开发/固定 commit

选择建议:生产与日常一律选 A(校验值可控、产物名标准);仅当团队已标准化 Go 工具链且需要与内部工具同流程管理时选 B;只有改源码才需要 C。

八、安装后基础配置

WTFUtil 安装后无需任何系统级配置即可运行;它的"配置"就是一份 YAML 文件:

  • 默认路径:~/.config/wtf/config.yml,首次启动自动创建(实测见 4.4,生成 2004 字节的默认配置,内含时钟、文本文件、命令输出等基础模块);
  • 自定义路径:wtfutil --config=/path/to/config.yml,或环境变量 WTF_CONFIG=/path/to/config.yml;
  • 日志:~/.config/wtf/log.txt。

完整的全局参数(colors/grid/refreshInterval/navigation 等)与模块通用参数、逐项实测生效说明,见 《WTFUtil 0.51.0 配置参数详解》(专栏配置篇);命令行参数与键盘操作见 《WTFUtil 0.51.0 常用 CLI 命令与工具详解》(专栏命令篇)。

九、常见问题(FAQ)

Q1:运行报 ERROR terminal entry not found: term not set,退出码 1? 这是 TERM 环境变量未设置导致的——WTFUtil 是 TUI 程序,必须有终端类型。实测复现:在无 TTY 的非交互执行环境里运行 wtfutil --save(一个不存在的 flag,wtfutil 先报 flag 错误、随后尝试启动 TUI):

unknown flag `save'

ERROR terminal entry not found: term not set

解决:交互式 shell 里 TERM 通常已就绪;若确在受限环境,先 export TERM=xterm-256color 再运行。真要在无人值守环境里"挂着"仪表盘,用 tmux 会话承载。

Q2:go install 报 connection reset by peer? 见 5.2 排障实录:模块代理链路不稳定所致,切换 GOPROXY=https://proxy.golang.org,direct 并为 HTTPS 流量配置代理后恢复正常。

Q3:GitHub 下载很慢或超时? 为 curl 增加代理参数(curl -x http://<代理地址>:<端口> -LO <URL>)或导出 http_proxy/https_proxy 环境变量后重试;校验时以 tessera_0.51.0_checksums.txt 为准,勿使用来源不明的镜像。

Q4:为什么 Ubuntu 没有 apt install wtfutil? 官方未提供 apt 仓库、发布件里也没有 deb 包(实查 v0.46.0–v0.51.0 发布件清单均无 .deb/.rpm)。Ubuntu 上请用本文方案 A/B/C 三条路径,不建议引入第三方 PPA。

Q5:sha256sum -c 报一堆 FAILED open or read? 官方校验文件覆盖全部 10 个平台的压缩包,你只下载了 linux-amd64 的 1–2 个,未下载的文件必然报 FAILED open or read。确认目标行(*_linux_amd64.tar.gz: OK)为 OK 即可,忽略其余。

Q6:想升级/回退版本怎么办? 见「十、升级、降级与多版本管理」,替换二进制即可,配置文件向后兼容。

十、升级、降级与多版本管理

10.1 升级到新版本

WTFUtil 是单二进制程序,升级 = 下载新版本压缩包并替换 /usr/local/bin/wtfutil:

cd /root
curl -LO https://github.com/wtfutil/wtf/releases/download/<新版本号>/wtf_<新版本号>_linux_amd64.tar.gz
sha256sum wtf_<新版本号>_linux_amd64.tar.gz   # 与该版本 checksums.txt 比对
tar xzf wtf_<新版本号>_linux_amd64.tar.gz -C wtf-upgrade
install -m 0755 /root/wtf-upgrade/wtfutil /usr/local/bin/wtfutil
wtfutil --version

<新版本号> 以 GitHub Releases 页面实际最新值为准(本文写作时为 0.51.0)。配置文件位于用户目录、与二进制分离,升级不丢配置。

10.2 降级与多版本共存

把不同版本安装到独立目录,用符号链接切换:

install -d /opt/wtfutil/0.51.0
install -m 0755 /root/wtf-old/wtfutil /opt/wtfutil/0.51.0/wtfutil
ln -sfn /opt/wtfutil/0.51.0/wtfutil /usr/local/bin/wtfutil
wtfutil --version

实测输出:

WTF v0.51.0 (built: 2026-09-29T16:08:28Z)

降级即把符号链接指向旧版本目录。go install 路径的升级/降级通过 go install github.com/wtfutil/wtf@v<版本号> 指定版本重装。

十一、卸载与清理

rm -f /usr/local/bin/wtfutil /usr/local/bin/tessera /root/go/bin/wtf
rm -rf ~/.config/wtf        # 用户配置与日志(含所有个人配置,谨慎)
rm -rf /root/wtf-old /root/wtf-upgrade /root/wtf-src /opt/wtfutil   # 安装过程产物
rm -rf /usr/local/go        # 如仅为此安装了 Go 工具链

卸载后验证:which wtfutil 应无输出。

十二、参考链接

  • v0.51.0 发布页与发布件:https://github.com/wtfutil/wtf/releases/tag/v0.51.0(查询日期 2026-10-23)
  • 校验文件:https://github.com/wtfutil/wtf/releases/download/v0.51.0/tessera_0.51.0_checksums.txt(查询日期 2026-10-23)
  • 官方安装文档:https://wtfutil.com/installation/ 与仓库 README(查询日期 2026-10-23)
  • Go 官方下载:https://go.dev/dl/(go1.26.4,查询日期 2026-10-23)
  • 站内互链:《WTFUtil 介绍与选型指南》