Rocky Linux 软件安装 neovim 和 git
rockyLinux 软件安装我主要挑了编辑器 neovim 和 版本管理控制工具 Git 进行介绍。通常情况,部署完 Linux 发行版,自带 vim 工具,既然有了 vim,那就来点新的尝尝鲜,比如 neovim。如果你想用版本控制工具,Git 是不错的选择,在本地初始化仓库做版本控制,还可以配合 github 和 gitee 进行使用,获取开源软件。

如果不是做内核裁剪相关工作,或者参与社区开发维护,其实不用涉及太深的知识。
tips:关于安装软件,普通用户没有权限,请使用 sudo 命令 提取权限,root 超级用户则不需要加 sudo。
Red Hat 企业版 Linux 9 软件管理工具,使用 RHEL 系列(centos、centos-stream、rockyLinux)可以参考 RHEL 文档。
在 Red Hat Enterprise Linux 9 中,DNF 工具用于软件安装。Red Hat 继续支持使用 yum 术语与之前的 RHEL
主要版本保持一致。如果你键入 yum 而不是 dnf,命令可以正常工作,因为这两者是兼容性的别名。
注意:RHEL 8 和 RHEL 9 基于 dnf 管理工具,与 RHEL 7 中使用 yum 兼容。
当你看到这篇博文,无论是使用云服务器或者 VMware 搭建虚拟环境,我默认你有 Linux 基本知识。
例如:基本操作,使用 ssh 命令连接远程服务器,通过 su 命令切换用户身份。
演示安装之前,使用终端管理工具先登录到普通用户(默认禁用了 root 用户 ssh 登录权限)。
登录终端
1 | PS D:\work> ssh wzgy@192.168.245.133 |
如果你和我一样使用的是 Windows 11 ,自带终端管理工具,可以满足日常简单操作。复杂一点的功能,可能需要借助于 Xshell 等工具。
切换 root 用户身份,两种方式
- su root
- su -
1 | [wzgy@localhost ~]$ su root |
如何确认当前用户身份?
根据符号 $ 和 # 区分,如果看到的是 $ 操作符,代表普通用户,如果是 # 符号,代表超级用户 root。
编辑器 Neovim
- neovim 稳定版本地址:https://github.com/neovim/neovim/releases/tag/stable
- neovim 所有版本:https://github.com/neovim/neovim/releases/tag
1、通过 Linux 发行版自带软件管理工具安装
准备 EPEL 环境,Rocky Linux 9:
1 | dnf config-manager --set-enabled crb |
yum & dnf 工具安装 neovim:
1 | yum -y install neovim.x86_64 |
执行命令运行:
1 | nvim |
输出结果:
1 | NVIM v0.9.0 |
2、下载归档包 nvim-linux64.tar.gz 安装,已经编译好的源码包
获取:
1 | wget https://github.com/neovim/neovim/releases/download/stable/nvim-linux64.tar.gz |
解压:
1 | tar -zxvf nvim-linux64.tar.gz |
执行命令运行:
1 | ./nvim-linux64/bin/nvim |
查看 nvim 版本:
1 | ./nvim-linux64/bin/nvim -v |
输出结果同上面二进制包(rpm)形式安装后,查看版本结果。
配置环境变量 vim /etc/profile:
1 | # neovim home |
如果想即时生效,不想重启服务器,执行 source 命令即可:
1 | source /etc/profile |
配置完成,在任意位置都可以执行 nvim 命令。
3、源码包编译安装
如果是初学者、或者没有高度定制需求,个人不推荐使用这种形式构建。虽然灵活度很高,编译出问题并不好排查。如果是抱着学习的心态,可以尝试。毕竟一分耕耘,一分收获,知识宝库慢慢壮大。
获取:
1 | wget https://github.com/neovim/neovim/archive/refs/tags/stable.zip |
安装步骤其实很简单,可能需要略微做调整:
- 配置:./configure
- 编译:make 或者 cmake
- 安装: make install
通常安装目录在:/usr/ 或者 /usr/local/ 亦或是 /usr/local/share/
一般情况命令脚本在:/usr/local/bin/
必备环境(比如 make、cmake、gcc 等等)、编译、安装步骤此处省略,请参考官方文档:
https://github.com/neovim/neovim/wiki/Installing-Neovim#install-from-source
版本控制工具 Git
普通用户部署 Git 环境
1 | sudo yum -y install git-core |
root 用户部署 Git 环境
1 | yum -y install git-core |
生成秘钥:
1 | ssh-keygen -t rsa -b 4096 -C "username@example.com" |
如果你还想了解更多 ssh-keygen 的用法,可以使用帮助命令:
1 | ssh-keygen --h |
检查你的系统目录是否有 ssh 公钥。默认情况 ssh 公钥,可能是以下几种文件形式:
- id_ed25519.pub
- id_rsa.pub
- id_ecdsa.pub
- id_dsa.pub
检查 ssh 公钥 id_rsa.pub 文件内容,在你当前用户~/.ssh/ 目录中
1 | [root@localhost test]# ls /root/.ssh/ |
既然上面介绍了 nvim,此时直接使用 nvim 编辑 ssh 公钥文件:nvim id_rsa.pub 。
复制 id_rsa.pub 文件内容到 github 账号的 ssh-key 中
https://github.com/settings/ssh/new
使用命令测试验证,验证 github:
1 | ssh -T git@github.com |
示例:验证成功,返回结果为 Hi 你的用户名!You’ve successfully authenticated;验证失败,则返回 permission deny 权限拒绝。
返回失败结果,此时需要根据上面步骤配置 ssh 公钥:
1 | [root@localhost test]# ssh -T git@github.com |
返回成功结果:
1 | [root@localhost test]# ssh -T git@github.com |
关于 git 基本用法,可以在公众号回复 git 即可获取相关基本用法,仅供参考哟!
上面介绍了 rockyLinux 平台 neovim 和 git 两款软件的安装,接下来系统介绍 RHEL 体系软件安装。
RHEL 系列软件安装介绍
缘起,几年前外出工作,意识到学习 Linux 基本知识的必要性,当时自学使用的是 Linux 发行版 centos6.5,大概距今已有八年。最早写这篇文档可以追溯到 2017 年,后来转到 centos7.x,翻新了一遍。目前转到 RHEL9,发现以前的总结,有许多不足之处。
个人稳定环境,目前已经切换到稳定发行版 REHL9 系列 rockyLinux-9;测试环境,使用 centos-stream-9。
软件安装包简介
源码包优点
- 开源,假如有足够的实力,可以修改源代码。
- 自由选择所需的功能。
- 软件是编译安装,更加适合自己的系统,稳定效率更高。
- 卸载方便。
源码包的缺点
- 安装过程步骤多,尤其安装大的软件集合时(LAMP 环境搭建),容易出现拼写错误。
- 编译过程时间较长,比二进制安装时间长。
- 安装过程一旦报错,刚入门时(新手)很难解决,个人入门时深有体会。
rpm 包二进制包优点
- 管理系统简单,通过简单的几个命令可以实现包的安装、升级、查询和卸载。
- 安装速度比源码包快。
二进制包缺点
- 经过编译,无法看到源码。
- 功能选择没有源码包灵活。
- 依赖性(安装一个包时会找很多依赖包,比较繁琐,对初学者不友好)。
源码包安装
1、安装前的准备工作
- 安装 C 语言编译器;
- 下载源码包。
2、安装注意事项
- 源码保存位置:/usr/local/src
- 软件安装位置:/usr/local/
- 如何确定安装过程报错:安装时停止,出现 error、warning 或 no 的提示
3、源码包安装位置
- 安装在指定路径中,一般在:/usr/local/ 软件名 /
4、安装位置不同带来的影响
RPM 包安装的服务可以使用系统服务管理命令(service)来管理,例如 RPM 包安装的 Apache 启动方法:
安装 httpd 服务,前面也提到过,RHEL9 中 dnf 和 yum 都行: dnf -y install httpd
- 方式一:/etc/rc.d/init.d/httpd start
- 方式二:service httpd start & systemctl start httpd
5、源码包安装过程
下载并解压安装包,进入目录,一般情况部署脚本可能指定路径为 /usr/local/ 也不排除指定为 /usr/ 。
配置:./configure prefix=/usr/local/
- 定义需要的功能选项;
- 检测系统环境是否符合安装要求;
- 把定义好的功能选项和检测系统环境的信息都写入 Makefile 文件,用于后续编辑;
- 编译 make ,make install 编译安装。
rpm 包安装
| rpm 包默认安装位置 | 释义 |
|---|---|
| /ect/ | 配置文件安装目录 |
| /usr/bin/ | 可执行的命令安装目录 |
| /usr/lib/ | 程序使用的函数库保存位置 |
| /usr/share/doc/ | 基本软件使用手册保存位置 |
| /usr/share/man/ | 帮助手册保存位置 |
rpm 包命名原则解读一览表:httpd-2.4.53-7.el9_1.5.x86_64.rpm
| 选项 | 释义 |
|---|---|
| httpd | 软件包名 |
| 2.4.53 | 版本 |
| 7 | 发布的次数 |
| el9_1.5 | 适合的 linux 平台 |
| x86_64 | 适用的硬件平台 |
| rpm | 软件包扩展名 |
rpm 命令管理
1、查询是否安装:
| 选项 | 释义 |
|---|---|
| 查询当前软件包是否安装 | rpm -q 包名 |
| 查询所有已经安装的 rpm 包 | rpm -qa |
| -q | query:查询 |
| -a | all:所有 |
2、查询软件包详细信息
说明:可以获取 httpd 服务安装包做作为测试体验,通过 wget 命令在线获取 rpm 安装包。
rpm -pi 包名
选项:
- -i:information,查询详细信息
- -p:package,查询未安装包信息
3、查询安装包文件所在安装位置
- rpm -ql 包名
- 选项:-l,list 列表
4、查询系统文件属于哪个 RPM 包
- rpm -qf 系统文件名
- 选项:-f(file 查询系统文件属于哪个软件包)
示例,查找 PostgreSQL 脚本 pg_ctl 属于那个 rpm 包:
1 | [root@localhost ~]# rpm -qf /usr/pgsql-15/bin/pg_ctl |
可以看到输出结果,pg_ctl 脚本属于 postgresql15-server-15.2-1PGDG.rhel9.x86_64 。
5、查询软件包的依耐性
- rpm -qR 包名:查询软件包的依耐性
- 选项:-R(requires 查询软件包的依耐性)
rpm 包的依耐性
- 树形依赖:a->b->c
- 环形依赖:a->b->c->a
- 模块依赖:查询网址:www.rpmfind.net
6、RPM 包校验
- rpm -V 已安装软件包
- 选项:-V(verify 校验指定 rpm 包的文件)
文件类型:
| 选项 | 释义 |
|---|---|
| -c (config file) | 配置文件 |
| -d (documentation) | 普通文档 |
| -d (documentation) | “鬼文件”,指该文件不应该被 rpm 包包含 |
| -L (license file) | 授权文件 |
| -r (read me) | 描述文件 |
内容校验:验证内容中的 8 个信息的具体内容如下
| 选项 | 释义 |
|---|---|
| -S | 文件大小是否改变 |
| -M | 文件的类型或文件权限(rwx)是否被改变 |
| -5 | MD5 校验,文件内容是否改变 |
| -D | 设备的主从代码是否改变 |
| -L | 文件路径是否改变 |
| -U | 文件所有者是否改变 |
| -G | 文件属组是否改变 |
| -T | 文件修改时间是否改变 |
7、rpm 包的安装卸载与升级
| 选项 | 释义 |
|---|---|
| -i | (install:安装) |
| -v | (verbose |
| -h | (hash:显示进度) |
| -U | (upgrade:升级) |
| -e | (erase:卸载) |
| –nodeps | (不检测依赖性) |
- 安装:rpm -ivh 接包全名
- 卸载:rpm -e 接包名(你要卸载的软件)
- 升级:rpm -Uvh 接包名
8、rpm 包中文件提取
rpm2cpio 包全名 | cpio -idv 文件绝对路径
- rpm2cpio:将 rpm 转换为 cpio 格式
- cpio:标准工具,用于创建软件档案文件以及从文件中提取文件
cpio 选项 <[文件][设备]
这里是标准格式,当然可以使用上面介绍的管道符方式。
例如:cpio -idv < test.txt
选项:
- -i:(copy-in 模式,还原)
- -d:还原时自动新建目录
- -v:显示还原过程
yum & dnf 在线安装
RHEL 8 之前的版本,只能使用 yum 工具管理,RHEL 8 以及目前最新的 RHEL9 同时支持 dnf 和 yum 命令,可以将 yum 当成 dnf 的别名。
在 Red Hat Enterprise Linux 9 中,dnf 工具用于软件安装。Red Hat 继续支持使用 yum 术语与之前发行的 RHEL
主要版本保持一致。如果你输入 yum 而不是 dnf,命令可以正常工作,因为这两者是兼容性的别名
dnf 管理工具功能不局限于限安装和卸载,当然还可以进行搜索软件包、列出软件包信息、软件仓库、软件包组、可用模块等等。下面介绍,依旧基于 yum 命令演示。
1、常用的 yum 命令
- yum list,查询所有可用软件包列表
- yum search 包名,搜索服务器上所有和关键字相关的包
示例,搜索 httpd 核心包:
1 | yum search httpd-core |
2、安装
yum -y install 包名
参数含义:
- install:安装
- -y:自动回答 yes
例如安装 httpd:
1 | yum -y install httpd |
3、升级
yum -y update 包名
- update:升级
4、卸载
- yum -y remove 包名
- remove:卸载
5、yum 软件组管理命令
- yum grouplist:列出所有可用的软件组列表
- yum groupinstall:软件组名,安装指定软件组,组名可以由 grouplist 查询出来
- yum groupremove:软件组名,卸载指定软件组
6、yum 源文件讲解
老版本 RHEL6 & RHEL7 系列(centos6.x 或者 centos7.x) 编辑网络 yum 源:
1 | vim /etc/yum.repos.d/CentOS-Base.repo |
在 Rocky Linux 9 中编辑:
1 | vim /etc/yum.repos.d/rocky.repo |
使用 tree 命令查看 /etc/yum.repos.d/:

1 | tree /etc/yum.repos.d/ |
| 选项 | 释义 |
|---|---|
| [base] | 容器名称,一定要放在 [] 中 |
| name | 容器说明,可以自己随便写 |
| mirrorlist | 镜像站点,这个可以注释掉 |
| baseurl | yum 源服务器的地址。默认是 CentOS 官方的服务器,可以使用的,如果你觉得慢可以改成你喜欢的 yum 源地址。 |
| enabled | 此容器是否生效,如果不写或者写成 enabled=1 都是生效,改为 enabled=0 就是不生效。 |
| gpgcheck | 如果是 1,指 RPM 数字证书生效,为 0 则不生效。 |
| gpgkey | 数字证书的公钥文件保存位置,不用修改。 |
如果你想替换为国内镜像 yum 源,可以做如下操作,注意 rocky 大小写,Linux 平台对大小写敏感:
1 | sed -e 's|^mirrorlist=|#mirrorlist=|g' \ |
再次执行,替换 rocky.repo 镜像源地址:
1 | sed -e 's|^mirrorlist=|#mirrorlist=|g' \ |
更新 dnf 源:
1 | dnf makecache |
原始链接配置方法有点小问题,实际替换 rocky 应该是是纯小写的:https://developer.aliyun.com/mirror/rockylinux?spm=a2c6h.13651102.0.0.6bd71b11XWmo3X
脚本安装包
centos.sh 脚本分析:一键安装包,实际上还是安装的源码包和 rpm 包,只是把安装过程写成了脚本,便于初学者安装。
优点:简单,快速,方便。
缺点:
- 不能定义安装软件的版本,选择余地较少;
- 不能定义所需软件功能;
- 源码包的优势丧失。
例如:
典型的一键安装包有 lnmp(Nginx + MySQL + php),还有 lnmpa(Nginx + MySQL + php + Apache)以及 lamp(Apache + MySQL + php)随着一键安装包的优化,用起来更方便,便于初学者使用。
具体不做过多介绍,网址:https://lnmp.org/(对于入门来说的确很好用),目前已经更新到:2022-6-1 LNMP1.9 正式版。
参考资料
Neovim wiki :https://github.com/neovim/neovim/wiki/Building-Neovim#quick-start
Epel:https://docs.fedoraproject.org/en-US/epel/
REHL9 DNF 管理工具:https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/9/html/managing_software_with_the_dnf_tool/index
—END—