Rocky 9 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登录权限)。
登录终端
PS D:\work> ssh wzgy@192.168.245.133
wzgy@192.168.245.133's password:
如果你和我一样使用的是Windows 11 ,自带终端管理工具,可以满足日常简单操作。复杂一点的功能,可能需要借助于Xshell等工具。
切换root用户身份,两种方式
- su root
- su -
[wzgy@localhost ~]$ su root
密码:
[root@localhost wzgy]#
如何确认当前用户身份?
根据符号 $ 和 # 区分,如果看到的是 $ 操作符,代表普通用户,如果是 # 符号,代表超级用户 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:
dnf config-manager --set-enabled crb
dnf install epel-release
yum & dnf 工具安装 neovim:
yum -y install neovim.x86_64
执行命令运行:
nvim
输出结果:
NVIM v0.9.0
Build type: Release
LuaJIT 2.1.0-beta3
2、下载归档包 nvim-linux64.tar.gz 安装,已经编译好的源码包
获取:
wget https://github.com/neovim/neovim/releases/download/stable/nvim-linux64.tar.gz
解压:
tar -zxvf nvim-linux64.tar.gz
执行命令运行:
./nvim-linux64/bin/nvim
查看 nvim 版本:
./nvim-linux64/bin/nvim -v
输出结果同上面二进制包(rpm)形式安装后,查看版本结果。
配置环境变量 vim /etc/profile:
# neovim home
NEOVIM_HOME=/usr/local/nvim-linux64/
PATH=$PATH:$NEOVIM_HOME/bin
export NEOVIM_HOME PATH
如果想即时生效,不想重启服务器,执行 source 命令即可:
source /etc/profile
配置完成,在任意位置都可以执行 nvim 命令。
3、源码包编译安装
如果是初学者、或者没有高度定制需求,个人不推荐使用这种形式构建。虽然灵活度很高,编译出问题并不好排查。如果是抱着学习的心态,可以尝试。毕竟一分耕耘,一分收获,知识宝库慢慢壮大。
获取:
wget https://github.com/neovim/neovim/archive/refs/tags/stable.zip
必备环境(比如make、cmake、gcc等等)、编译、安装步骤此处省略,请参考官方文档:
https://github.com/neovim/neovim/wiki/Installing-Neovim#install-from-source
版本控制工具 Git
普通用户部署Git环境
sudo yum -y install git-core
root用户部署Git环境
yum -y install git-core
生成秘钥:
ssh-keygen -t rsa -b 4096 -C "username@example.com"
如果你还想了解更多 ssh-keygen 的用法,可以使用帮助命令:
ssh-keygen --h
检查你的系统目录是否有ssh公钥。默认情况ssh公钥,可能是以下几种文件形式:
- id_ed25519.pub
- id_rsa.pub
- id_ecdsa.pub
- id_dsa.pub
检查 ssh公钥 id_rsa.pub 文件内容,在你当前用户 ~/.ssh/ 目录中
[root@localhost test]# ls /root/.ssh/
id_rsa id_rsa.pub known_hosts
[root@localhost test]# nvim /root/.ssh/id_rsa.pub
[root@localhost test]# ssh -T git@github.com
Hi cnwangk! You've successfully authenticated, but GitHub does not provide shell access.
既然上面介绍了 nvim,此时直接使用 nvim 编辑 ssh 公钥文件:nvim id_rsa.pub 。
复制 id_rsa.pub 文件内容到 github 账号的ssh-key中
https://github.com/settings/ssh/new
使用命令测试验证,验证github:
ssh -T git@github.com
示例:验证成功,返回结果为Hi 你的用户名! You've successfully authenticated;验证失败,则返回permission deny权限拒绝。
返回失败结果,此时需要根据上面步骤配置 ssh 公钥:
[root@localhost test]# ssh -T git@github.com
git@github.com: Permission denied (publickey).
返回成功结果:
[root@localhost test]# ssh -T git@github.com
Hi cnwangk! You've successfully authenticated, but GitHub does not provide shell access.
关于 git 基本用法,可以在公众号回复 git 即可获取相关基本用法,仅供参考哟!
上面介绍了rockyLinux 平台neovim 和 git两款软件的安装,接下来系统介绍 RHEL 体系软件安装。
RHEL 系列软件安装介绍
缘起,几年前外出工作,意识到学习 Linux 基本知识的必要性,当时自学使用的是Linux发行版 centos6.5,大概距今已有八年。最早写这篇文档可以追溯到 2017 年,后来转到 centos7.x,翻新了一遍。目前转到RHEL9,发现以前的总结,有许多不足之处。
个人稳定环境,目前已经切换到稳定发行版 REHL9 系列 Rocky Linux 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包:
[root@localhost ~]# rpm -qf /usr/pgsql-15/bin/pg_ctl
postgresql15-server-15.2-1PGDG.rhel9.x86_64
可以看到输出结果,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 核心包:
yum search httpd-core
httpd-core.x86_64 : httpd minimal core
2、安装
yum -y install 包名
参数含义:
- install:安装
- -y:自动回答yes
例如安装 httpd:
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源:
vim /etc/yum.repos.d/CentOS-Base.repo
在 Rocky Linux 9中编辑:
vim /etc/yum.repos.d/rocky.repo
使用 tree 命令查看 /etc/yum.repos.d/:

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平台对大小写敏感:
sed -e 's|^mirrorlist=|#mirrorlist=|g' \
-e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.aliyun.com/rockylinux|g' \
-i.bak \
/etc/yum.repos.d/rocky-*.repo
再次执行,替换 rocky.repo 镜像源地址:
sed -e 's|^mirrorlist=|#mirrorlist=|g' \
-e 's|^#baseurl=http://dl.rockylinux.org/$contentdir|baseurl=https://mirrors.aliyun.com/rockylinux|g' \
-i.bak \
/etc/yum.repos.d/rocky.repo
更新 dnf 源:
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—
Rocky 9 Linux 软件安装 neovim 和 git的更多相关文章
- Linux软件安装,RPM与YUM
为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处.LaplaceDemon/SJQ. http://www.cnblogs.com/shijiaqi1066/p/3843955.html ...
- Linux基础学习(6)--Linux软件安装
第六章——Linux软件安装 一.软件包管理简介 1.软件包分类: (1)源码包:脚本安装包 (2)二进制包(RPM包.系统默认包) 2.源码包: (1)源码包的优点:开源,如果有足够的能力,可以修改 ...
- Linux软件安装中RPM与YUM 区别和联系
.tc-nav-row{ height:38px; margin: 8px 15px; } .tc-nav-tab{ text-align: center; color:#333333; line-h ...
- 第五部分 linux 软件安装RPM SRPM与YUM
第五部分 linux 软件安装RPM SRPM与YUM 软件管理员简介 RPM与DPKG两大主流 rpm: redhat centos suse 命令:yum ...
- Unix/Linux 软件安装
Unix/Linux 软件安装 首先我们明确.在Unix like的机器上,一套软件并不唯独一个程序,而是一堆程序代码文件. 比如main.c,haha.c,sin_value.c这三个源码文件. 1 ...
- Linux软件安装——服务管理的命令
Linux软件安装——服务管理的命令 摘要:本文主要学习了Linux系统中服务管理的命令. service命令 service命令用于对系统服务进行管理,比如启动(start).停止(stop).重启 ...
- Linux软件安装——服务管理
Linux软件安装——服务管理 摘要:本文主要学习了Linux中有关服务管理的知识. 什么是服务 服务一般是放置在后台运行的一个或多个进分程,为用户或系统提供某项特定的服务,有些是系统服务,有些则是独 ...
- Linux软件安装——安装软件的命令
Linux软件安装——安装软件的命令 摘要:本文主要学习了如何在Linux系统中安装.更新.卸载软件. rpm命令 rpm命令用来在Linux系统上进行软件的安装. 基本语法 安装命令: rpm -i ...
- Linux软件安装——软件包
Linux软件安装——软件包 摘要:本文主要学习了Linux下软件安装的相关知识. 软件包 简介 Linux下的软件包众多,且几乎都是经GPL授权.免费开源(无偿公开源代码)的.这意味着如果你具备修改 ...
- Linux 软件安装的三种方式
Linux 软件安装的三种方式 1.yum 语法格式: yum -y install package.name -y yes # 遇到提示自动输入yes 案例: 安装ifconfig命 ...
随机推荐
- linux修改用户密码期限
1. https://www.cnblogs.com/wwwcf1982603555/p/15474557.html 设置密码复杂度: http://events.jianshu.io/p/533d3 ...
- IBM 双队列管理器,双向传输
1. 建立队列管理器 建立[test01][test02]两个队列管理器,一直下一步即可,端口号不能一致(需要记住设置的端口号,后面会用到) [test01]端口号 1414 [test02]端口号 ...
- Python通过ssh登录实现报文监听
Python自动化ssh登录目标主机,实现报文长度length 0监听,并根据反馈信息弹窗报警: 代码比较简陋,后续记得优化改进. #_*_coding:utf-8 _*_ #!/usr/bin/py ...
- Salesforce Sharing And Visibility 零基础学习(一)基础知识篇
本篇参考: https://trailhead.salesforce.com/en/users/strailhead/trailmixes/architect-sharing-and-visibili ...
- CAS乐观锁(原子操作)
更多内容,前往 IT-BLOG 锁主要分为两种:乐观锁和悲观锁,而 synchronized 就属于一种悲观锁,每次在操作数据前都会加锁.乐观锁是指:乐观的认为自己在操作数据时,别人不会对当前数据进行 ...
- Gin中间件middleware
类型 全局中间件 单个路由中间件 群组中间件 Reference
- jwt 学习笔记
概述 JWT,Java Web Token,通过 JSON 形式作为 Web 应用中的令牌,用于在各方之间安全地将信息作为 JSON 对象传输,在数据传输过程中还可以完成数据加密.签名等相关处理 JW ...
- Duplicate File Finder Pro - 重复文件查找器,给你的 Mac 清理出大量磁盘空间
重复文件查找器 Duplicate File Finder Pro 是一个实用程序,只需3次点击就能在Mac上找到重复的文件.拖放功能和尽可能多的文件夹,你想,然后按下扫描按钮.在一分钟,应用程序将给 ...
- ABC291题解(D-G)
ABC291 D - Flip Cards Solution: 考虑DP,定义状态\(F_{i,0}\)为第\(i\)张卡片正面朝上的方案数,\(F_{i,1}\)为第\(i\)张卡片背面朝上的方案数 ...
- jQ的工具类方法
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...