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用户身份,两种方式

  1. su root
  2. su -
[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:

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公钥,可能是以下几种文件形式:

  1. id_ed25519.pub
  2. id_rsa.pub
  3. id_ecdsa.pub
  4. 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。

软件安装包简介

源码包优点

  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包:

[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 核心包:

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

2、安装

yum -y install 包名

参数含义:

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

例如安装 httpd:

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源:

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包,只是把安装过程写成了脚本,便于初学者安装。

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

缺点

  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—

Rocky 9 Linux 软件安装 neovim 和 git的更多相关文章

  1. Linux软件安装,RPM与YUM

    为了防止无良网站的爬虫抓取文章,特此标识,转载请注明文章出处.LaplaceDemon/SJQ. http://www.cnblogs.com/shijiaqi1066/p/3843955.html ...

  2. Linux基础学习(6)--Linux软件安装

    第六章——Linux软件安装 一.软件包管理简介 1.软件包分类: (1)源码包:脚本安装包 (2)二进制包(RPM包.系统默认包) 2.源码包: (1)源码包的优点:开源,如果有足够的能力,可以修改 ...

  3. Linux软件安装中RPM与YUM 区别和联系

    .tc-nav-row{ height:38px; margin: 8px 15px; } .tc-nav-tab{ text-align: center; color:#333333; line-h ...

  4. 第五部分 linux 软件安装RPM SRPM与YUM

    第五部分  linux  软件安装RPM    SRPM与YUM   软件管理员简介 RPM与DPKG两大主流 rpm: redhat       centos     suse    命令:yum ...

  5. Unix/Linux 软件安装

    Unix/Linux 软件安装 首先我们明确.在Unix like的机器上,一套软件并不唯独一个程序,而是一堆程序代码文件. 比如main.c,haha.c,sin_value.c这三个源码文件. 1 ...

  6. Linux软件安装——服务管理的命令

    Linux软件安装——服务管理的命令 摘要:本文主要学习了Linux系统中服务管理的命令. service命令 service命令用于对系统服务进行管理,比如启动(start).停止(stop).重启 ...

  7. Linux软件安装——服务管理

    Linux软件安装——服务管理 摘要:本文主要学习了Linux中有关服务管理的知识. 什么是服务 服务一般是放置在后台运行的一个或多个进分程,为用户或系统提供某项特定的服务,有些是系统服务,有些则是独 ...

  8. Linux软件安装——安装软件的命令

    Linux软件安装——安装软件的命令 摘要:本文主要学习了如何在Linux系统中安装.更新.卸载软件. rpm命令 rpm命令用来在Linux系统上进行软件的安装. 基本语法 安装命令: rpm -i ...

  9. Linux软件安装——软件包

    Linux软件安装——软件包 摘要:本文主要学习了Linux下软件安装的相关知识. 软件包 简介 Linux下的软件包众多,且几乎都是经GPL授权.免费开源(无偿公开源代码)的.这意味着如果你具备修改 ...

  10. Linux 软件安装的三种方式

    Linux 软件安装的三种方式 1.yum ​ 语法格式: ​ yum -y install package.name ​ -y yes # 遇到提示自动输入yes ​ 案例: 安装ifconfig命 ...

随机推荐

  1. “你帮我助”软件开发(Final)

    本项目是上海交通大学 CS-3331 软件工程课程大作业. 作业描述 "你帮我助"软件开发(Final) 新的功能需求: 物品有公共的信息(物品名称,物品说明,物品所在地址,联系人 ...

  2. 讨论django并发能力及提供并发解决方案

    django 的并发能力真的是令人担忧,这里就使用 nginx + uwsgi 提供高并发 nginx 的并发能力超高,单台并发能力过万(这个也不是绝对),在纯静态的 web 服务中更是突出其优越的地 ...

  3. Charles抓包数据导入postman

    Charles抓包数据导入postman 1.先抓取到对应的请求,右键,再点击Copy cURL Request,操作如下图所示:                                   ...

  4. IDEA中,如何将本地项目推送到Github里面

    具体步骤 1.File->VCS->Create Git Repository 然后进入这样一个界面: 接着我们选中当前项目作为本地库: 设置好之后,我们会发现,项目文件全部标红,这是由于 ...

  5. Bootstarp5第四弹

    六.颜色 <div class="container mt-3">最基本的文本 <p class="text-muted">柔和的文本& ...

  6. 如何在 Apinto 实现 HTTP 与gRPC 的协议转换 (上)

    什么是 gRPC 像gRPC是由google开发的一个高性能.通用的开源 RPC 框架,主要面向移动应用开发且基于HTTP/2协议标准而设计,同时支持大多数流行的编程语言. gRPC基于 HTTP/2 ...

  7. AI 影评家:用 Hugging Face 模型打造一个电影评分机器人

    本文为社区成员 Jun Chen 为 百姓 AI 和 Hugging Face 联合举办的黑客松所撰写的教程文档,欢迎你阅读今天的第二条推送了解和参加本次黑客松活动.文内含有较多链接,我们不再一一贴出 ...

  8. protobuf 详解

    protobuf protobuf概述 protobuf简介 Protobuf是Protocol Buffers的简称,它是Google公司开发的一种数据描述语言,是一种轻便高效的结构化数据存储格式, ...

  9. Spring 注解整理

    更多内容,前往IT-BLOG 一.核心容器 [1]@Configuration:告诉 Spring 这是一个配置类(配置类=配置文件)[2]@Bean:给容器中注册一个 Bean :类型为返回值类型, ...

  10. Redis 故障排查

    系统性学习,移步IT-BLOG 要进行 Redis 的故障定位,一般通过分析 Redis 日志.应用日志和 Redis 的监控信息来定位相关问题. 一.Redis 日志设置 [1]日志文件:Redis ...