Rocky Linux软件安装 neovim 和 git

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

https://s1.ax1x.com/2023/05/08/p90l30x.png

如果不是做内核裁剪相关工作,或者参与社区开发维护,其实不用涉及太深的知识。

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
2
PS D:\work> ssh wzgy@192.168.245.133
wzgy@192.168.245.133's password:

如果你和我一样使用的是Windows 11 ,自带终端管理工具,可以满足日常简单操作。复杂一点的功能,可能需要借助于Xshell等工具。

切换root用户身份,两种方式

  1. su root
  2. su -
1
2
3
[wzgy@localhost ~]$ su root
密码:
[root@localhost wzgy]#

如何确认当前用户身份?

根据符号 $ 和 # 区分,如果看到的是 $ 操作符,代表普通用户,如果是 # 符号,代表超级用户 root。

编辑器 Neovim

  1. neovim 稳定版本地址:https://github.com/neovim/neovim/releases/tag/stable
  2. neovim 所有版本:https://github.com/neovim/neovim/releases/tag

1、通过 Linux 发行版自带软件管理工具安装

准备EPEL环境,Rocky Linux 9:

1
2
dnf config-manager --set-enabled crb
dnf install epel-release

yum & dnf 工具安装 neovim:

1
yum -y install neovim.x86_64

执行命令运行:

1
nvim

输出结果:

1
2
3
NVIM v0.9.0
Build type: Release
LuaJIT 2.1.0-beta3

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
2
3
4
# neovim home
NEOVIM_HOME=/usr/local/nvim-linux64/
PATH=$PATH:$NEOVIM_HOME/bin
export NEOVIM_HOME PATH

如果想即时生效,不想重启服务器,执行 source 命令即可:

1
source /etc/profile

配置完成,在任意位置都可以执行 nvim 命令。

3、源码包编译安装

如果是初学者、或者没有高度定制需求,个人不推荐使用这种形式构建。虽然灵活度很高,编译出问题并不好排查。如果是抱着学习的心态,可以尝试。毕竟一分耕耘,一分收获,知识宝库慢慢壮大。

获取:

1
wget https://github.com/neovim/neovim/archive/refs/tags/stable.zip

安装步骤其实很简单,可能需要略微做调整:

  1. 配置:./configure
  2. 编译:make 或者 cmake
  3. 安装: 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公钥,可能是以下几种文件形式:

  1. id_ed25519.pub
  2. id_rsa.pub
  3. id_ecdsa.pub
  4. id_dsa.pub

检查 ssh公钥 id_rsa.pub 文件内容,在你当前用户 ~/.ssh/ 目录中

1
2
3
4
5
[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:

1
ssh -T git@github.com

示例:验证成功,返回结果为Hi 你的用户名! You’ve successfully authenticated;验证失败,则返回permission deny权限拒绝。

返回失败结果,此时需要根据上面步骤配置 ssh 公钥:

1
2
[root@localhost test]# ssh -T git@github.com
git@github.com: Permission denied (publickey).

返回成功结果:

1
2
[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 系列 rockyLinux-9;测试环境,使用 centos-stream-9。

软件安装包简介

源码包优点

  1. 开源,假如有足够的实力,可以修改源代码。
  2. 自由选择所需的功能。
  3. 软件是编译安装,更加适合自己的系统,稳定效率更高。
  4. 卸载方便。

源码包的缺点

  1. 安装过程步骤多,尤其安装大的软件集合时(LAMP环境搭建),容易出现拼写错误。
  2. 编译过程时间较长,比二进制安装时间长。
  3. 安装过程一旦报错,刚入门时(新手)很难解决,个人入门时深有体会。

rpm 包二进制包优点

  1. 管理系统简单,通过简单的几个命令可以实现包的安装、升级、查询和卸载。
  2. 安装速度比源码包快。

二进制包缺点

  1. 经过编译,无法看到源码。
  2. 功能选择没有源码包灵活。
  3. 依赖性(安装一个包时会找很多依赖包,比较繁琐,对初学者不友好)。

源码包安装

1、安装前的准备工作

  1. 安装C语言编译器;
  2. 下载源码包。

2、安装注意事项

  1. 源码保存位置:/usr/local/src
  2. 软件安装位置:/usr/local/
  3. 如何确定安装过程报错:安装时停止,出现error、warning或no的提示

3、源码包安装位置

  1. 安装在指定路径中,一般在:/usr/local/软件名/

4、安装位置不同带来的影响

RPM包安装的服务可以使用系统服务管理命令(service)来管理,例如RPM包安装的Apache启动方法:

安装 httpd 服务,前面也提到过,RHEL9中dnf和yum都行: dnf -y install httpd

  1. 方式一:/etc/rc.d/init.d/httpd start
  2. 方式二:service httpd start & systemctl start httpd

5、源码包安装过程

下载并解压安装包,进入目录,一般情况部署脚本可能指定路径为 /usr/local/ 也不排除指定为 /usr/ 。

配置:./configure prefix=/usr/local/

  1. 定义需要的功能选项;
  2. 检测系统环境是否符合安装要求;
  3. 把定义好的功能选项和检测系统环境的信息都写入Makefile文件,用于后续编辑;
  4. 编译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 包名

选项:

  1. -i:information,查询详细信息
  2. -p:package,查询未安装包信息

3、查询安装包文件所在安装位置

  • rpm -ql 包名
  • 选项:-l,list 列表

4、查询系统文件属于哪个RPM包

  • rpm -qf 系统文件名
  • 选项:-f(file查询系统文件属于哪个软件包)

示例,查找PostgreSQL脚本 pg_ctl 属于那个rpm包:

1
2
[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、查询软件包的依耐性

  1. rpm -qR 包名:查询软件包的依耐性
  2. 选项:-R(requires 查询软件包的依耐性)

rpm包的依耐性

  1. 树形依赖:a->b->c
  2. 环形依赖:a->b->c->a
  3. 模块依赖:查询网址:www.rpmfind.net

6、RPM包校验

  1. rpm -V 已安装软件包
  2. 选项:-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 (不检测依赖性)
  1. 安装:rpm -ivh 接包全名
  2. 卸载:rpm -e 接包名(你要卸载的软件)
  3. 升级:rpm -Uvh 接包名

8、rpm包中文件提取
rpm2cpio 包全名 | cpio -idv文件绝对路径

  1. rpm2cpio:将rpm转换为cpio格式
  2. cpio:标准工具,用于创建软件档案文件以及从文件中提取文件

cpio 选项 < [文件][设备]
这里是标准格式,当然可以使用上面介绍的管道符方式。

例如:cpio -idv < test.txt
选项:

  1. -i:(copy-in模式,还原)
  2. -d:还原时自动新建目录
  3. -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命令

  1. yum list,查询所有可用软件包列表
  2. yum search 包名,搜索服务器上所有和关键字相关的包

示例,搜索httpd 核心包:

1
2
yum search httpd-core
httpd-core.x86_64 : httpd minimal core

2、安装
yum -y install 包名

参数含义:

  1. install:安装
  2. -y:自动回答yes

例如安装 httpd:

1
yum -y install httpd

3、升级
yum -y update 包名

  1. update:升级

4、卸载

  1. yum -y remove 包名
  2. remove:卸载

5、yum软件组管理命令

  1. yum grouplist:列出所有可用的软件组列表
  2. yum groupinstall:软件组名,安装指定软件组,组名可以由grouplist查询出来
  3. 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
2
3
4
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 镜像源地址:

1
2
3
4
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 源:

1
dnf makecache

原始链接配置方法有点小问题,实际替换 rocky 应该是是纯小写的:https://developer.aliyun.com/mirror/rockylinux?spm=a2c6h.13651102.0.0.6bd71b11XWmo3X

脚本安装包

centos.sh 脚本分析:一键安装包,实际上还是安装的源码包和rpm包,只是把安装过程写成了脚本,便于初学者安装。

优点:简单,快速,方便。

缺点

  1. 不能定义安装软件的版本,选择余地较少;
  2. 不能定义所需软件功能;
  3. 源码包的优势丧失。

例如

典型的一键安装包有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—