在 Ubuntu 18.04 (WSL) 上配置 LazyVim

在 Ubuntu 18.04 (WSL) 上配置 LazyVim 的终极指南:解决 GLIBC 和 Tree-sitter 依赖难题

前言

在 Ubuntu 18.04 这种"古董"系统上安装现代化的 Neovim 配置(如 LazyVim)是一场噩梦。

LazyVim 要求 Neovim >= 0.10,而 Ubuntu 18.04 的 apt 源里只有 0.6 版本。更糟糕的是,系统底层的 glibc 版本仅为 2.27,导致官方的 AppImage 无法运行,最新的 tree-sitter 编译工具也会直接报错退出。

经过一番折腾,我总结出了一套绕过系统限制的完美方案:使用 Homebrew 管理软件包,并手动降级编译 Tree-sitter。

核心思路

  1. 放弃 apt 和 Snap:系统源太老,Snap 在 WSL 容器中常有服务连接问题。
  2. 使用 Homebrew (Linuxbrew):它自带较新的编译链,能安装最新版 Neovim 和工具。
  3. 降级 Tree-sitter-cli:这是最关键的一步,手动编译一个兼容老系统的版本。

第一步:安装 Homebrew

既然系统自带的库太老,我们就用 Homebrew 来接管软件包管理。

bash 复制代码
# 1. 安装 Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# 2. 配置环境变量 (根据安装结束时的提示,将以下内容加入 ~/.bashrc)
(echo; echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"') >> ~/.bashrc
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"

# 3. 验证安装
brew --version

第二步:安装 Neovim 及必备工具

LazyVim 依赖很多外部工具(搜索、Git 管理、LSP 环境)。使用 Brew 一键安装,避免版本不兼容。

bash 复制代码
# 安装 Neovim 以及 LazyVim 依赖的工具
brew install neovim ripgrep fd lazygit git gcc node

# 验证 Neovim 版本 (必须 >= 0.9.0)
nvim --version

第三步:解决 Tree-sitter 的 GLIBC 报错 (关键!)

这是最容易卡住的地方。LazyVim 的插件会自动下载最新版的 tree-sitter-cli (v0.25+),但这个版本需要 GLIBC 2.29+ 和复杂的 C++ 依赖,在 Ubuntu 18.04 上无法运行,会导致代码没有高亮。

解决方案: 使用 Rust 手动编译一个旧版本 (v0.22.6),这个版本对老系统兼容性最好。

1. 安装 Rust 环境

bash 复制代码
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source "$HOME/.cargo/env"

2. 编译兼容版 Tree-sitter

bash 复制代码
# 指定安装 v0.22.6 版本
cargo install tree-sitter-cli --version 0.22.6

3. 偷梁换柱:强制 Neovim 使用我们编译的版本

为了防止 LazyVim 的包管理器 (Mason) 自动下载坏掉的新版本,我们需要建立软链接,"欺骗"Neovim。

bash 复制代码
# 1. 创建目录结构
mkdir -p ~/.local/share/nvim/mason/bin

# 2. 删除可能已经存在的坏文件
rm -f ~/.local/share/nvim/mason/bin/tree-sitter

# 3. 建立软链接 (指向 Cargo 编译的好文件)
ln -sf ~/.cargo/bin/tree-sitter ~/.local/share/nvim/mason/bin/tree-sitter

# 4. 验证 (确保显示 0.22.6 且不报错)
~/.local/share/nvim/mason/bin/tree-sitter --version

第四步:安装 LazyVim

环境准备好后,安装 LazyVim 就很简单了。

bash 复制代码
# 1. 备份旧配置 (如果有)
mv ~/.config/nvim ~/.config/nvim.bak
mv ~/.local/share/nvim ~/.local/share/nvim.bak

# 2. 克隆 LazyVim 模版
git clone https://github.com/LazyVim/starter ~/.config/nvim

# 3. 移除模版的 .git 目录
rm -rf ~/.config/nvim/.git

第五步:收尾工作 (Locale 和字体)

1. 修复 Locale (解决乱码/方框问题)

如果打开 Neovim 发现图标显示异常或报错 Locale does not support UTF-8,执行以下命令:

bash 复制代码
# 安装语言包
sudo apt-get install -y locales
sudo locale-gen en_US.UTF-8

# 在 ~/.bashrc 中添加环境变量
echo 'export LANG=en_US.UTF-8' >> ~/.bashrc
echo 'export LC_ALL=en_US.UTF-8' >> ~/.bashrc

# 使配置生效
source ~/.bashrc

2. 字体设置

确保你本地电脑 (Windows/Mac)的终端模拟器使用的是 Nerd Font (推荐 JetBrainsMono Nerd Font),否则图标会显示为乱码。


验证与完成

打开终端,输入 nvim。

  1. LazyVim 会自动拉取插件。
  2. 输入 :TSUpdate,如果底部进度条正常走动,且没有弹出 GLIBC 错误,说明 Tree-sitter 修复成功。
  3. 按 <Space> 键,应该能看到漂亮的菜单弹出。

虽然 :checkhealth 可能会警告 tree-sitter-cli v0.25.0 is required,但只要代码高亮正常,完全可以忽略这个警告。

至此,你已经成功在 Ubuntu 18.04 上拥有了最新、最强、最快的 Neovim 体验!

相关推荐
砚凝霜15 分钟前
【软考信息安全】第十九章 Unix/Linux安全分析与防护
linux·安全·unix
creator_Li1 小时前
Linux 的 Page Cache
linux·page cache
KING-WU5122 小时前
Linux GDB 调试实战指南:从编译到断点调试
linux·运维·服务器
Lucis__3 小时前
深入理解程序链接与加载—从动静态链接到库加载
linux·elf·链接·程序·动静态库
影视飓风TIM3 小时前
Linux 进程信号原理与剖析
linux·运维·服务器
缘友一世3 小时前
开源 Linux截图工具闪构(SnapForge)
linux·运维·ubuntu·开源·截图
人工智能和FPGA AI技术3 小时前
wbuntu 极点五笔输入法安装记录(两种方法)
ubuntu·软件构建
朱包林4 小时前
iTerm2终端配置指南
linux·javascript·python·云原生·容器·kubernetes·云计算
祖力554 小时前
Linux系统移植、烧录与环境的搭建
linux·运维·服务器
张小姐的猫5 小时前
【Linux】网络编程 —— 多路转接:epoll
linux·运维·网络