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包的依耐性
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—