内网环境离线配置 Neovim + LazyVim 记录

发布时间:2026/6/10 7:17:24

内网环境离线配置 Neovim + LazyVim 记录 最近想把自己外网环境中已经配置好的 Neovim LazyVim 迁移到内网环境。由于内网不能访问外网所以不能直接在内网执行git clone、:Lazy sync、:MasonInstall、:TSUpdate这类命令否则会因为无法下载插件和工具而失败。本次环境大致如下系统Red Hat 8.10 glibc2.28 终端ETC Linux 图形终端 目标离线安装 Neovim并迁移 LazyVim 配置整体思路是不要在内网源码编译也不要在内网在线安装插件而是在外网准备好 Neovim 本体、LazyVim 配置、插件目录、Mason 工具和字体然后整体拷贝到内网使用。1. 安装 Neovim 本体一开始考虑过在内网直接源码编译 Neovim但很快发现不太现实。源码编译会依赖很多工具和库例如gcc、cmake、ninja、gettext、libuv、luajit、tree-sitter等。对于不能访问外网的内网环境来说处理这些依赖会比较麻烦。所以更推荐使用已经编译好的 release 包。我最后使用的是https://github.com/neovim/neovim-releases下载对应的 AppImage 或兼容旧 glibc 的版本后拷贝到内网机器。例如mkdir-p~/tools/nvimmvnvim-linux-x86_64.appimage ~/tools/nvim/nvimchmodx ~/tools/nvim/nvim然后把它加入PATHechoexport PATH$HOME/tools/nvim:$PATH~/.bashrcsource~/.bashrc检查是否成功nvim--version如果能正常输出版本号说明 Neovim 本体已经安装成功。这里需要注意AppImage 并不会默认安装到系统目录。它更像一个便携式可执行文件放在哪里就在哪里运行。因此放到~/tools/nvim/这种用户目录下即可不需要 root 权限。2. glibc 版本问题安装过程中遇到过下面的错误nvim: /lib64/libc.so.6: versionGLIBC_2.33 not found nvim: /lib64/libc.so.6: versionGLIBC_2.34 not found nvim: /lib64/libc.so.6: version GLIBC_2.29not found查看系统版本cat/etc/os-release ldd--version发现内网环境是 Red Hat 8.10glibc 版本是 2.28。这个错误的原因是下载的 nvim 二进制是在更新的系统上编译的所以需要更高版本的 glibc。这里不要尝试升级系统 glibc也不要替换/lib64/libc.so.6。glibc 是 Linux 系统非常核心的库很多基础命令都依赖它强行替换有可能导致系统不可用。正确做法是换一个兼容旧 glibc 的 nvim 包比如 AppImage、older-glibc build或者在 Red Hat 8 / Rocky Linux 8 / AlmaLinux 8 环境中自己编译。我的情况是换用neovim-releases里的版本后解决。3. 迁移 LazyVim 环境Neovim 本体能运行之后再迁移 LazyVim 配置。在外网机器上先确保 LazyVim 已经安装完成插件、Mason 工具也都已经下载好。然后打包下面几个目录tarczf nvim-env.tar.gz\-C~\.config/nvim\.local/share/nvim\.local/state/nvim\.cache/nvim这些目录分别对应~/.config/nvim Neovim 配置 ~/.local/share/nvim Lazy 插件、Mason 工具等 ~/.local/state/nvim 状态文件 ~/.cache/nvim 缓存文件这里建议使用-C ~的方式打包这样压缩包里的路径会比较干净例如.config/nvim、.local/share/nvim。如果直接打包~/.config/nvim可能会看到tar: Removing leading/ from member names tar: Removing leading/ from hardlinktargets这不是报错只是tar为了安全去掉绝对路径前面的/。把压缩包拷贝到内网后在 home 目录解压tarxzf nvim-env.tar.gz-C~然后启动nvim内网环境中尽量不要执行:Lazy sync :MasonInstall :TSUpdate因为这些命令会尝试联网下载插件、LSP、formatter 或 treesitter parser。对于 SystemVerilog / RTL 开发如果使用了 Verible也要确认 Mason 里的工具是否能运行ls~/.local/share/nvim/mason/bin ~/.local/share/nvim/mason/bin/verible-verilog-format--version~/.local/share/nvim/mason/bin/verible-verilog-ls--version如果这些命令能正常输出说明相关工具也迁移成功了。4. 解决 LazyVim 图标乱码LazyVim 启动后如果发现文件图标、状态栏图标显示成方框或乱码一般不是 LazyVim 配置问题而是终端字体不支持 Nerd Font。LazyVim 中很多图标都依赖 Nerd Font。普通字体即使能显示英文和中文也不一定包含这些图标字符。我在 Windows 上原本使用的是 OpenType 字体Linux 也可以使用这类字体。常见的.ttf、.otf、.ttc字体文件在 Linux 下通常都能识别。将 Nerd Font 字体拷贝到 Linux 后可以安装到用户字体目录mkdir-p~/.local/share/fonts/NerdFontscp*.otf ~/.local/share/fonts/NerdFonts/ fc-cache-fv如果是.ttf文件也是一样mkdir-p~/.local/share/fonts/NerdFontscp*.ttf ~/.local/share/fonts/NerdFonts/ fc-cache-fv检查字体是否被识别fc-list|grep-iNerd如果能看到字体说明系统已经识别到了。不过我这里又遇到一个小问题fc-list | grep -i Nerd能看到字体但在 ETC Linux 图形终端的字体设置里找不到这个字体。最后的解决方法是完全关闭 ETC 图形终端然后重新打开。重新打开后字体列表就刷新出来了。建议优先选择带Mono的 Nerd Font例如JetBrainsMono Nerd Font Mono Hack Nerd Font Mono FiraCode Nerd Font Mono然后在终端设置中切换字体Terminal Preferences → Profile / Appearance / Text → Font切换完成后可以用下面的命令测试echo    如果能显示为正常图标说明 Nerd Font 已经生效。再次打开 LazyVim图标乱码问题基本就解决了。总结这次内网配置 Neovim LazyVim主要踩了几个坑。首先内网环境没有网络不适合源码编译或在线安装插件。最稳的方式是在外网提前准备好 Neovim 本体、LazyVim 插件、Mason 工具然后整体拷贝到内网。其次Red Hat 8.10 的 glibc 是 2.28如果下载了较新系统编译的 nvim可能会出现GLIBC_2.33 not found、GLIBC_2.34 not found等错误。这个问题不要通过升级 glibc 解决而应该换用兼容旧 glibc 的 nvim release 或 AppImage。最后LazyVim 图标乱码通常是字体问题。安装 Nerd Font 后需要刷新字体缓存并且完全重启图形终端之后在终端设置中切换到 Nerd Font Mono 字体即可。整体流程可以概括为外网准备 nvim release → 内网安装 nvim 本体 → 外网打包 LazyVim 配置和插件目录 → 内网解压迁移 → 安装 Nerd Font → 重启终端并切换字体这样就可以在内网环境中比较稳定地使用 Neovim LazyVim。

相关新闻