ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

openEuler vim 安装配置:包拆分、源检查与离线部署

openEuler vim 安装配置:包拆分、源检查与离线部署 1. openEuler 上vim这个名字背后的三种形态很多人第一次在 openEuler 上敲vim命令时会愣一下——要么提示 command not found要么打开之后发现界面极其朴素连语法高亮都没有于是下意识觉得自己装了个假 vim。这个现象不是安装失败而是 openEuler 作为企业级服务器发行版默认只给你留了刚刚够用的那一小块。理解 openEuler 里 vim 的包拆分逻辑是后面所有安装配置动作的前提否则你会在到底该装哪个包这件事上反复绕圈。1.1 最小化安装之后你用的其实是 viopenEuler 的安装器在选择最小化安装时只会带上vim-minimal这个包。它提供/usr/bin/vi和/usr/bin/vim两个命令入口但底层是一个被裁剪过的 vim编译时带了--with-featuressmall标记。换句话说你能用它改配置文件、能保存退出但语法高亮、多级撤销、分屏、clipboard这些特性基本都不在。最直接的判别方法是vi --version | head -n 3 vim --version | grep -i small version如果输出里带Small version说明你手上就是精简版。这个版本存在的意义是让系统在极小的磁盘占用下依然可维护——救援模式、容器基础镜像、单用户模式下都得有个能编辑文件的工具而完整版 vim 会额外拉进几十兆的运行时和语法文件对基础镜像不划算。1.2 vim-minimal、vim-enhanced、vim-X11 各管什么openEuler 沿用了 RHEL 系的拆分方式把 vim 拆成几个包职责划得很清楚包名提供内容典型用途vim-minimalvi、vim命令small 特性集系统救援、容器最小镜像vim-enhanced完整版 vim、语法高亮、缩进脚本、/etc/vimrc日常服务器运维编辑vim-common共享的运行时文件、文档被上面两个包依赖vim-X11gvim 图形界面版本装了桌面环境后想用鼠标操作日常在服务器上写脚本、改 Nginx 配置、调 systemd unit 文件装vim-enhanced就够了。vim-X11在纯命令行场景下属于纯粹的浪费它会把 GTK 相关依赖一起拉进来在几百兆内存的小机器上不太合适。至于vim-minimal建议保留别卸载因为有些系统脚本和visudo会依赖/usr/bin/vi的存在卸掉之后crontab -e这类命令可能直接报错。1.3 什么情况下必须换掉精简版有一个很实用的判断标准如果你编辑文件时需要频繁按u撤销、需要看清 YAML 的缩进层级、需要在几十行配置里做批量替换那就必须换成完整版。精简版 vim 的撤销层级有限缩进完全是硬 Tab处理 Python 或 YAML 时非常容易踩坑。还有个隐蔽的区别是syntax on。在精简版里执行这条命令会报E319: Sorry, the command is not available in this version。这个报错很多人第一次见会以为是配置文件写错了实际上是包本身就不支持。2. 动手前的三分钟侦查软件源、版本与残留装软件之前先看清楚现状这个习惯能省掉大量明明装了却不生效的困惑。openEuler 的包管理器和 RHEL/CentOS 一脉相承但版本迭代后源地址和仓库名有变化直接照搬网上的老教程容易在第一步就卡住。2.1 先确认系统版本与 dnf 源是否可用openEuler 目前主流在用的是 20.03 LTS、22.03 LTS 以及后续的 SP 版本。版本号决定了仓库里 vim 的具体版本22.03 LTS SP3 上一般是 vim 8.2部分更新版本已经到 9.x。cat /etc/openEuler-release dnf repolistdnf repolist的输出是你最该看的。如果列表是空的或者显示仓库不可用那装包一定会失败。常见原因是安装时没配网络、或者仓库配置文件被改过。这时候先看/etc/yum.repos.d/下的.repo文件openEuler 官方源默认是启用的。顺带说一句openEuler 里yum命令仍然可用它实际上是dnf的一个软链接。用哪个都行但输出的提示信息会略有不同遇到问题时建议统一用dnf语义更准确。2.2 用 rpm 和 alternatives 摸清已有安装在装之前先确认系统里已经有什么rpm -qa | grep -i vim ls -l /usr/bin/vi /usr/bin/vim正常的最小化系统会显示vim-minimal和vim-common两个包。如果rpm -qa里已经有vim-enhanced那就不是安装问题而是配置问题别急着重新装。再补一条vim --version | head -n 5这行输出会告诉你 vim 的版本号、编译特性集。看到Huge version或者特性列表里有一长串号说明完整版已经在位了。很多人忽略这一步结果把已经装好的环境又装了一遍白白浪费时间。2.3 没有外网时的安装包准备思路生产环境里很常见的一种情况是目标机器完全隔离只能靠内网源或者离线包。这时候有两条路可以走。第一条是找一台同版本、同架构、能联网的 openEuler用dnf download把包和依赖一次性拉下来dnf download --resolve --alldeps vim-enhanced -y --destdir/tmp/vimpkgs--resolve会连带把依赖一起下载这是关键参数。少了它你到目标机器上大概率会缺vim-common或者某个库文件。第二条是直接下载 ISO 镜像挂载之后从Packages目录里取 rpm。这种方式的好处是版本绝对匹配不会出现依赖版本冲突。挂载方式很简单mkdir -p /mnt/iso mount -o loop openEuler-22.03-LTS-SP3-x86_64-dvd.iso /mnt/iso ls /mnt/iso/Packages | grep vim提示挂载 ISO 需要 root 权限且mount -o loop在部分精简内核上需要确认 loop 模块已加载。如果报错先执行modprobe loop。
返回列表