edit 原本是微软在 MS-DOS 中附带的一个便捷工具,用于让用户随手查看或者编辑文本文件用的,地位约等于 Windows 里的记事本。近来命令行下各种工具有卷土重来的势头,微软也在 Rust 语言的助攻下把本已凉透的 edit 复活了。
下午打开 WSL 里的 Ubuntu 18.04 LTS,要编辑一个 Python 源文件时突然就想试一下这个重生版的工具,于是到官方分发页面下载了下来,准备享受一番。解压缩就来了一次暴击,压缩包是个不常见的 zst 格式,原以为 tar 可以直接解决,但试过发现不行。只好先 apt install zstd,成功后用 zstd 解压。把得到的单文件 edit 移动到 /usr/bin 里执行,报错。
|
1 2 3 4 |
[crayon-68a2a3f10d7ac893424917 inline="true" ]./edit: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.28' not found (required by ./edit) ./edit: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by ./edit) ./edit: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by ./edit) ./edit: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by ./edit) |
看了下系统内的 libc.so 的情况,版本是 2.27,正好差着一点。给系统升级这个重量级的 so 不是没有可能,但是风险较高,实在犯不上。正好前两天清理系统盘的时候,把 WSL 里那份不用的 Ubuntu 20.04 LTS 卸载掉了,不行就把当前的这份升级到 20.04 吧。
执行 do-release-upgrade,报错,信息的最后一句很明确:ModuleNotFoundError: No module named 'apt_pkg'。听了 AI 的劝,执行了 apt install --reinstall python3-apt python3 python3-minimal 和apt install -f 之后就好了。所谓的好了,就是 do-release-upgrade 命令可以执行了,而不是执行完成了,继续报错:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
[crayon-68a2a3f10d7b0974858298 inline="true" ]Reading cache pcilib: Cannot open /proc/bus/pci lspci: Cannot find any working access method. Checking package manager Reading package lists... Done Building dependency tree Reading state information... Done Hit http://security.ubuntu.com/ubuntu bionic-security InRelease Hit http://archive.ubuntu.com/ubuntu bionic InRelease Hit http://archive.ubuntu.com/ubuntu bionic-updates InRelease Hit http://archive.ubuntu.com/ubuntu bionic-backports InRelease Fetched 0 B in 0s (0 B/s) Reading package lists... Done Building dependency tree Reading state information... Done Restoring original system state Aborting Reading package lists... Done Building dependency tree Reading state information... Done === Command detached from window (Mon Aug 11 18:33:29 2025) === === Command terminated with exit status 1 (Mon Aug 11 18:33:39 2025) === |
AI 又说了,你要打开 /etc/update-manager/release-upgrades 文件,找到 Prompt=lts,在它前面添加以下两行:
|
1 2 |
[crayon-68a2a3f10d7b2055713787 inline="true" ]CheckPCI=no CheckUSB=no |
然后执行 do-release-upgrade -f DistUpgradeViewNonInteractive,再次失败。
无奈之下,先把 /etc/apt/sources.list 做了个备份,将其中的 bionic 全部替换成了 focal(sed -i 's/bionic/focal/g' /etc/apt/sources.list),然后执行了 apt update 和 apy full-upgrade -y。完成后重新打开 这份 WSL 实例,果然升级成功,libc.so 的版本升到了 2.31。于是满心期待地执行了 edit,呜呼呀,怎么界面看起来像是 VI?连退出的命令都没错,显然又有乌龙发生,应该是升级后的系统把 /usr/bin/edit 给覆盖了,八成成了 vim 的符号链接。
于是又把 edit 解压一次,这次执行就没问题了吧?嘿,报错:
|
1 2 3 |
[crayon-68a2a3f10d7b5122920468 inline="true" ]./edit: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.32' not found (required by ./edit) ./edit: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.33' not found (required by ./edit) ./edit: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.34' not found (required by ./edit) |
除了把一行 2.28 的 glibc 找不到的信息消失了以外,涛声依旧。感情就是消遣俺来着。老夫还是先缓缓吧。
