在 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 体验!

相关推荐
若风的雨26 分钟前
安全与验证模块设计方案
linux·安全
Eiceblue1 小时前
.NET框架下Windows、Linux、Mac环境C#打印PDF全指南
linux·windows·.net
试试勇气1 小时前
Linux学习笔记(十三)--文件系统
linux·笔记·学习
yingdonglan1 小时前
鸿蒙跨端Flutter学习——GridView高级功能
linux·运维·windows
wdfk_prog2 小时前
[Linux]学习笔记系列 -- [drivers][clk]clk
linux·笔记·学习
遇见火星2 小时前
在Linux中使用journalctl命令进行日志分析和管理详细教程
linux·运维·服务器·journalctl
xuefuhe2 小时前
RHEL9 yum install etcd Error: Unable to find a match: etcd
linux·运维·centos
m0_736034852 小时前
1.27笔记
linux·服务器·笔记
旖旎夜光2 小时前
Linux(12)(下)
linux·网络
郝亚军3 小时前
如何在windows11和Ubuntu linux之间互传文件
linux·运维·ubuntu