Rocky 9 Linux 软件安装 neovim 和 git

2023-07-29,,

目录
编辑器 Neovim
版本控制工具 Git
RHEL 系列软件安装介绍
软件安装包简介
源码包安装
rpm包安装
yum & dnf 在线安装
脚本安装包

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的相关教程结束。

《Rocky 9 Linux 软件安装 neovim 和 git.doc》

下载本文的Word格式文档,以方便收藏与打印。