Ubuntu20.04终端clear命令失效,缺失GLIBC版本问题求助
问题说明
Ubuntu 20.04系统中,安装Linux版Homebrew后卸载NodeJS,准备通过brew重新安装时,clear命令无法正常执行,报错如下:
clear: /usr/lib/x86_64-linux-gnu/libc.so.6: version
GLIBC_2.34' not found (required by clear) clear: /usr/lib/x86_64-linux-gnu/libc.so.6: versionGLIBC_2.33' not found (required by /home/linuxbrew/.linuxbrew/Cellar/ncurses/6.5/lib/libncursesw.so.6)
已执行sudo apt update && sudo apt upgrade更新系统,但问题未解决。
解决步骤
1. 确认clear命令的来源
先查清楚当前终端调用的clear是系统自带的还是Homebrew安装的:
which clear
如果输出是/home/linuxbrew/.linuxbrew/bin/clear,说明问题出在Homebrew版本的clear——它依赖的ncurses库需要更高版本的GLIBC,而Ubuntu 20.04默认的GLIBC是2.31,达不到要求。
2. 恢复使用系统原生clear
临时生效(仅当前终端)
直接调用系统自带的clear:
/usr/bin/clear
或者临时调整PATH优先级,让系统命令先被找到:
export PATH=/usr/bin:$PATH
执行后再敲clear就能正常工作。
永久生效(所有终端)
编辑你的shell配置文件(比如~/.bashrc,如果用zsh就编辑~/.zshrc):
nano ~/.bashrc
在文件末尾添加一行:
export PATH=/usr/bin:$PATH
保存退出后,执行以下命令让配置立即生效:
source ~/.bashrc
3. 修复Homebrew的ncurses依赖(可选)
如果需要保留Homebrew的工具,可以尝试重新编译安装适配当前系统的ncurses:
brew uninstall ncurses sudo apt install build-essential brew install ncurses --build-from-source
编译过程会适配Ubuntu 20.04的GLIBC版本,解决依赖冲突。
4. 重置Homebrew环境(若上述方法无效)
运行Homebrew的诊断工具排查问题:
brew doctor
根据提示修复,比如重新初始化Homebrew环境变量:
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
内容的提问来源于stack exchange,提问作者Pravin P B

