不接之前的Java聊了,因为Java课程越到后面越听不懂,今天继续聊Linux。
今天上午,开始了新一轮的Linux课程,重点讲了一下软件安装,分别有rpm安装、yum安装及编译安装。
rpm安装:
rpm全称——Redhat Package Management,网易翻译过来就是:Redhat包管理。rpm类似Windows中的注册表,用来记录软件安装过程生成的文件的位置,可使用rpm实现卸载软件。
rpm来源有两种:第一种是安装Linux系统的光盘镜像中,第二种是各大网站上的
网络源:
阿里: https://mirrors.aliyun.com/ 华为: https://mirrors.huaweicloud.com/
网易: https://mirrors.163.com/ 清华: https://mirrors.tuna.tsinghua.edu.cn/
中科大: https://mirrors.ustc.edu.cn/
软件包分为两种:官方包,就是centos方提供的;第三方,epel提供的。
相信大家平时下载软件时都有注意到自己下载的软件包和下方的软件很像,只不过结尾不一样。
上图中为一个rpm软件包。这串字符分为5个部分,第一部分是前面5个字母:metis,这里是软件名;第二部分是从-后面的5到第二个-后面的2:5.1.0-12,这里是软件版本;第三部分是2.后面的“el7”,它的意思是这个软件包能在哪些系统中使用,el7表示可以在centos7里使用;第四部分是从x86到64,这里表示该软件包适用的cpu架构;最后的rpm是个后缀。
可能会有阅读者好奇后缀是什么?浅浅解释一下,平时我们电脑上下载好软件,安装时都会提示软件的保存位置,可以去保存位置中看一下。比如我的电脑下载过微信,就可以看到保存位置有一个“WeChat.exe”应用程序,这里的“exe”也是众多后缀之一,也是最容易见到的
再给大家看一些压缩包的后缀:tar.gz、zip,还有很多,就不多啰嗦啦,感兴趣可以在网上查
那么rpm怎么用呢?用处是什么呢?它的使用格式为——rpm空格选项空格软件包名,使用的选项的时候需要带上选项前面的小横线-。它可以用来安装、卸载软件、查看对应的软件有没有安装。
它的选项有:
- i 用于安装软件 - v 显示安装过程的信息
- h 用#表示安装的进度,一个#为2% - ivh 安装软件并显示过程信息
- e 卸载软件 - qf 查看指定文件是在安装哪个软件时生成的
- q 查看对应软件是否安装 - ql 查看安装软件生成的文件列表
- qc 查看安装软件生成的配置文件
-- nodeps 强制忽略依赖关系 -- replacepkgs 覆盖安装
上面大多都比较好理解,我来为没学过、没学到这里的阅读者说一下什么是依赖关系:
依赖关系:
在使用这个命令未使用但需要使用nodeps选项安装软件时,会提示软件安装出错,并在报错附近提示需要先安装的软件,安装提示的软件后才能接着安装我们需要安装的软件。
说个在Windows中我遇到的相比类似的情况,我想在电脑上看小说,需要下载番茄免费小说软件,使用这个软件又需要下载腾讯应用宝软件,这里就存在依赖关系,使用小说软件需要先下载应用宝。
下载完后,想单单卸载应用宝留下小说软件也会提示个弹窗
从上图中可以理解为,应用宝平台中的应用依赖该平台,下载应用需要先下载平台。
接下来聊一下yum安装,yum全程——Yellowdog Update Manager,简意为黄狗升级管理,yum安装比rpm安装方便些,解决了rpm安装时依赖关系的层级繁琐情况。使用yum安装会自动判断软件包依赖的其他软件,并按顺序自动安装。
yum安装的流程为:
首先找到yum源、再在yum源中找元数据,若在yum源的元数据中分析是否有要安装的软件包,有则一并获取软件包的依赖关系信息、再根据元数据分析结果从源中下载rpm包到本地、再根据元数据的分析结果按顺序安装rpm包。
元数据:源中的全部软件名,每个软件的版本号、依赖信息。
yum源配置:
首先要确认已运行的虚拟机使用的光盘镜像是否正确,还要确认“设备连接状态”的两个框有没有全部勾选
上图虚拟机并没有运行,所以“设备连接”只有一个框勾选了,正常情况是两个框都勾选
再确定“连接”“使用ISO映像文件”是否正确,目前主流为centos7
接着启动虚拟机、在终端运行挂载命令挂载光盘:mount空格/dev/cdrom空格/挂载点,挂载点可以使用现有目录,也可以自己新建一个,创建目录命令:mkdir,带上选项-p表示自动创建上层目录。
配置文件:
yum的配置文件包括主配置文件和子配置文件:
主——/etc/yum.conf 子——/etc/yum.repos.d
然后切换到子配置文件下:cd空格/etc/yum.repos.d/
接着把里面的文件全部删除或者备份到其他的目录下
rm -rf *.repo 强制删除repo结尾文件且不询问 mv 移动命令
然后新建一个后缀为repo的配置文件,例如my.repo、local.repo
开始编辑配置文件内容:
[wode]——————————yum源的id,不能有空格
name=wo de————————yum源的名称,随意编写
enabled=1—————————是否激活此yum源,0=激活,1=不激活
gpgcheck=0————————检查rpm包的来源合法性,0=不检查,1=检查
baseurl=file:///挂载点————指定yum源的位置
(
不是很重要的:
gpgkey=URL——————若=1,就需要指定公钥文件的位置
enablegroups=1————启用组功能,0表示不启用
debuglevel=(0-10)——数值越大输出的调试信息越详细,若为0或不设置,则表示不输出调试信息
logfile=/*————————设置自定义的日志文件路径
exactarch=1——————表示只允许与安装的系统架构完全匹配的软件包进行安装,如果系统为64位,软件包为32位,则无法安装这个包,0表示没有和系统架构完全匹配的包,则安装和系统架构兼容的包
plugins=1———————表示启用yum插件,0表示禁用插件 )
编辑后保存退出,先shift+冒号:进入末行模式,再执行叹号!qw,强制保存退出
上述配置文件中,激活yum源代表着yum源会使用该软件源来搜索、安装、更新和删除软件包,enabled=0,表示yum源将不会考虑该源中的软件包。
gpgcheck=0表示关闭对软件包的 GPG(GNU Privacy Guard)签名检查,大致意思是:在下载软件包时将不会验证软件包的数字签名是否与软件包的发布者匹配。
关闭GPG的影响:
若gpgcheck=1,也就是不关闭的话,过程会很慢
接下来,就是比较重要的一步了——检查配置是否成功,执行两个命令:yum空格clean空格all——清楚缓存、yum空格repolist——生成缓存
配置完本地源了,那当然也有网络源了,网络源的地址在上面已经说过啦。这里直接献上一份老师笔记中的清华的centos源,方便各位复制粘贴:
首先,打开、新建一个repo结尾文件
[centos]
name=centos
enabled=1
gpgcheck=0
baseurl=https://mirrors.tuna.tsinghua.edu.cn/centos/7.9.2009/os/x86_64/
保存退出后,检查是否成功
配置完成后,即可使用,格式:yum空格install空格软件名空格-y。
上面命令最后的-y用处是执行安装软件指令后,过程中系统不会再询问
编译安装:
开始聊最后的编译安装,同为小白的我见过的编译安装是讲师示范的安装nginx的过程
编译安装,初听这个词,我很懵,后来看到了笔记的解释才明白:
程序员写的是源码:C、Java代码,计算机把源码转为01代码——机器码,这个转换过程就是编译,计算机可以运行编译后的程序。
安装源码包的过程:
解压源码包、进入解压目录、安装依赖、执行./configure文件(执行此文件两个用处:1、检查当前系统环境是否满足后续操作。2、指定软件的安装路径)、执行make(进行编译)、执行make空格install(将编译好的程序进行安装)
Xshell
这里要聊到一个可以和Linux远程连接的软件——xshell,通过配置好虚拟机的ip、拿到用户密码即可远程登录到Linux,Linux是可自定义字符界面或图形界面,而Xshell只有字符界面。
字符界面就和我们Windows的cmd窗口一样。Win键(键盘左下角4个图形的键)+R键,运行cmd就是cmd窗口;而图形界面就很容易理解,我们的Windows系统就是图形界面。
通过Xshell连接Linux后,就是下面的界面
Xshell安装软件包方法:
我们只需要将解压后的源码包拖动至这个窗口即可,我示范一下将nginx拖动到Xshell:
出现下面的弹窗即拖动成功
那如果没有Xshell就不能下载nginx了吗?当然是可以的,只是比Xshell多一些步骤而已:
Linux安装软件包方法:(下列红色代码复制即可,括号内代码不用复制)
1、先安装组件:lrzsz 命令为:yum install lrzsz -y
2、解压源码包:tar xvf nginx-1.22.1.tar.gz,得到压缩包同名目录:nginx-1.22.1
3、进入解压目录:cd nginx-1.22.1
4、安装依赖:yum install gcc gcc- c++ pcre-devl zlib-devl openssl-devel ncurses-devl -y
5、执行./configure:./configure --prefix=/usr/local/nginx(!!!:--prefix=/usr/local/nginx指定软件安装位置:/usr/local/nginx)
6、执行make:make 7、执行make install:make install