1.RPM软件包(扩展格式为.rpm结尾)的使用技巧(在物理机foundation上操作)
注意:自己的笔记本上可以在foundation0上执行 cd /content/rhel8.0/x86_64/dvd/BaseOS(基础软件包)/Packages和cd /content/rhel8.0/x86_64/dvd/AppStream(扩展定义程序包)/Packages测试(两个工作目录)
(1)如何查询指定软件包是否安装
rpm -q httpd(查询阿帕奇组件版本号)
显示安装版本号(如下图)
rpm -q cifs-utils
rpm -q vsftpd(-q 查询)
显示未安装(is not installed)
(2)如何删除指定软件包
rpm -e cifs-utils
rpm -e vsftpd
rpm -e httpd(-e 删除)
(3)如何安装指定软件包(注意:保证在Packages目录下有需要安装的rpm包)
rpm -ivh cifs-utils-6.8-2.el8.x86_64.rpm (ll|grep管道符限制查询输出查找目标软件包:显示在系统光盘挂载目标目录的BaseOS/Package下有cifs-utils的rpm包)
rpm -ivh vsftpd* (在系统光盘挂载目标目录的AppStream/Packages下有vsftpd的rpm包)
查看一下对应的两个包都有多少软件组:
一种错误:依赖性关系(rpm -e httpd)
rpm -e httpd(删除阿帕奇组件,但这个包用到了其他的几个包,我就无法删除,我需要删除提示相关的其他的包)
rpm -ivh httpd(-i 安装 v显示安装信息 h显示进度条)
还有安装错误,安装一个包的时候,显示依赖错误就需要安装前置依赖的所有包!
3. YUM(黄狗编辑器)软件仓库的配置及使用(相当于一个批处理的安装与删除,自动安装一批包,卸载一批包,在物理机foundation上操作)
1.yellow dog updater,modified (yum)
2.man yum(man手册学习yum)
3.在RHEL8下yum等同于dnf命令,但DNF 可以并行的安装软件,而yum不会(相当于yum的一个升级)
三点注意事项+五行参数:
(机房需要,不赘述)(1)回环挂载RHEL8系统镜像文件/mnt/iso
三注意:(2)修改YUM软件仓库的配置文件:
1.一定要将目录切换到YUM软件仓库的工作目录/etc/yum.repos.d/下才有效;
2.工作目录下的配置文件必须以.repo结尾,(3.不绝对但是我们初学,经常这么做)工作目录下的配置文件.repo有且只有一个)
编辑命令:vim /etc/yum.repos.d/server.repo
录入五个参数:
[base] //[]里写软件仓库的名称,一般使用base.(写别的也行)
name=my rhel8 //name后写软件仓库的全称
baseurl=file:///mnt/iso/BaseOS //baseurl后写软件仓库的绝对路径(///是file:的写法)
enabled=1 //启用该软件仓库
gpgcheck=0 //不校验软件包(即不进行签名检查)
[local_app]
name=local iso app
baseurl=file:///mnt/iso/AppStream
enabled=1
gpgcheck=0
注意:在笔记本测试时baseurl=file:///content/rhel8.0/x86_64/dvd/BaseOS;(基础软件包)
另一个baseurl=file:///content/rhel8.0/x86_64/dvd/AppStream(扩展软件包)
vim /etc/yum.conf
(file://‘本地文件传输协议’/‘根目录’,网络http://,远端服务器ftp://)
首先查看原来的.repo文件如图:
然后创建backup目录存放它们:
然后我们自己创建.repo配置文件:
Tips:上下五条总共十条,一个是基础软件包的,一个是扩展软件包的!可能分成两个.repo配置文件放。
(3)验证软件仓库的方法
yum clean all //清空YUM缓存
yum makecache //建立缓存,此步可跳过
yum repolist(会看到1658/4672个包:伴随着新repo配置文件的导入,会自动生成新的redhat.repo,里面都注释了也没啥用)
补充后半部分的五条如图:limengbase,limengapp
查看:
4.YUM常见命令使用技巧
(1)查询指定的软件包
yum search httpd(search查询软件包相关信息·显示的是httpd*)
(2)yum info查询指定软件的详细信息(可以判断该软件包是否安装)
yum info vsftpd
yum info autofs
yum info httpd
yum info httpd*(通配符代表查询httpd开头的全部包信息)(installed package表示已经安装)(available package已有未安装)
已经安装的包:
已有,未安装的包:
rpm -e httpd(因为依赖性关系问题,无法删除)
(3)如何安装指定的软件包
yum install vsftpd
(安装包如图,其实应该加-y,跳过确认,如果是按照依赖很多包的话,一个一个确认麻烦死了)
yum info vsftpd(info 一个软件包的安装信息)
yum -y install autofs(已经安装过来所以下面显示啥也没干)
(4)如何删除指定的软件包
yum -y erase httpd*(通配符表示同时删除依赖的包)
yum info httpd(软件包信息)
(5)yum grouplist(以组列出)
(6)yum groupinstall 'Development Tools'
(7)yum whatprovides /etc/passwd等效于yum provides /etc/passwd(查询yum包的源头,追根溯源)
(8)yum history(列出运行过的yum命令,用得少)
5.通过指定的HTTP或FTP服务器设置YUM软件仓库源(在虚拟机servera上操作) (考试操作非常非常重要)
ssh root@servera
cd /etc/yum.repos.d/
打开rhel_dvd.repo显示如下十行代码:
cat rhel_dvd.repo
[rhel-8.0-for-x86_64-baseos-rpms]
baseurl = http://content.example.com/rhel8.0/x86_64/dvd/BaseOS(具体考试会给我们,我们要正确完成录入操作)
enabled = true(or 1)
gpgcheck = false(or 0)
name = Red Hat Enterprise Linux 8.0 BaseOS (dvd)
[rhel-8.0-for-x86_64-appstream-rpms]
baseurl = http://content.example.com/rhel8.0/x86_64/dvd/AppStream
enabled = true (or 1)
gpgcheck = false (or 0)
name = Red Hat Enterprise Linux 8.0 AppStream (dvd)
(如下图所示)
6.YUM软件仓库的命令配置方法(在物理机foundation上操作)
yum whatprovides yum-config-manager(导入下面的软件包可以自动生成repo供你使用,傻瓜福利!)
rpm -ivh dnf-utils-4.0.2.2-3.el8.noarch(依赖这个包 4.0.2.2-3.el8.noarch)记住他!
yum-config-manager –help
yum repolist
练习:网络源-http://测试(主要把servera原来的repo文件转移到我们的备份文件夹里面,然后创建李蒙01.repo文件)
创建limeng01.repo,在limeng01中编辑导入网络源进行测试
yum repolist
(我们习惯写在同一个repo文件中,但是如果是自动生成的repo文件是根据软件库的路径分别生成的,所以会产生两个repo文件,文件中我们还要手动加一行,下面会进行介绍)
(3)yum-config-manager --add-repo file:///content/ucf/
//添加新的软件仓库,包括本地源与网络源(生成的缺少最后一段gpgcheck=0千万要加上)
本地源测试:(这里注意本地源的另外写法就是file:///加我们yum软件包的具体位置,要精确到最后一个目录,所以我在后面也做了演示!)
(例如下面的AppStream),就可以这样写
ll /content/ucf/ //可以看到有Package包目录和repodata目录
yum-config-manager --add-repo file:///content/ucf/
yum repolist //可以看到content_ucf软件仓库(3个包)
cat content_ucf_.repo
[content_ucf_]
name=created by dnf config-manager from file:///content/ucf/
baseurl=file:///content/ucf/
enabled=1
注意:自动生成的.repo文件莫得gpgcheck
网络源测试-基础包BaseOS:
在浏览器中输入http://foundation0.ilt.example.com/rhel8.0/x86_64/dvd/BaseOS/(先ping 一下看看能不能ping通确认能不能做地址服务器)
小步骤:
1.先ping通域名foundation0.ilt.example.com;
2.然后可以在浏览器中输入http://foundation0.ilt.example.com/rhel8.0/x86_64/dvd查看内容;3.最后再设置软件仓库源。
yum-config-manager --add-repo
http://foundation0.ilt.example.com/rhel8.0/x86_64/dvd/BaseOS/
yum repolist //可以看到foundation0软件仓库(1660个包)
(如下图:)
cat foundation0.ilt.example.com_rhel8.0_x86_64_dvd_BaseOS_.repo(cat命令也是查看但只查看不修改配置文件的命令)
[foundation0.ilt.example.com_rhel8.0_x86_64_dvd_BaseOS_]
name=created by dnf config-manager from
http://foundation0.ilt.example.com/rhel8.0/x86_64/dvd/BaseOS/
baseurl=http://foundation0.ilt.example.com/rhel8.0/x86_64/dvd/BaseOS/
enabled=1
聪明的你一定发现少了什么,哦,当然是我亲爱的gpgcheck
网络源测试-扩展包AppStream:
在浏览器中输入http://foundation0.ilt.example.com/rhel8.0/x86_64/dvd/AppStream/
yum-config-manager --add-repo http://foundation0.ilt.example.com/rhel8.0/x86_64/dvd/AppStream/
yum repolist //可以看到foundation0软件仓库(4672个包)
cat foundation0.ilt.example.com_rhel8.0_x86_64_dvd_AppStream_.repo (和上面一样查看,感觉不如vim看起来好看)
[foundation0.ilt.example.com_rhel8.0_x86_64_dvd_AppStream_]
name=created by dnf config-manager from http://foundation0.ilt.example.com/rhel8.0/x86_64/dvd/AppStream/
baseurl=http://foundation0.ilt.example.com/rhel8.0/x86_64/dvd/AppStream/
enabled=1
(所以,我的gpgcheck还是没在)
下面正式测试:
yum -y erase autofs(随便卸载个软件)
yum -y install autofs (准备安装回来但是报错) //反馈Error: GPG check FAILED,来源于BaseOS仓库(NO KEY)如下图所示,让人十分沮丧,下面开始解决问题
GPG检测失败,解决方法:
方法一:在配置文件中设置不进行gpgcheck签名检查(即将gpgcheck=0)
vim foundation0.ilt.example.com_rhel8.0_x86_64_dvd_BaseOS_.repo
加入gpgcheck=0
再次安装yum -y install autofs,OK
方法二:导入GPG公钥
先将环境恢复,即去掉配置文件中的gpgcheck=0;
yum -y erase autofs(删除软件包autofs)
yum -y install autofs //Error: GPG check FAILED
在浏览器中输入http://foundation0.ilt.example.com/rhel8.0/x86_64/dvd/RPM-GPG-KEY-redhat-release,
可以看到GPG公钥内容
rpm --import /content/rhel8.0/x86_64/dvd/RPM-GPG-KEY-redhat-release
再次安装yum -y install autofs,OK
方法三:将GPG公钥(对应GPG签名信息)写入repo文件中(不操作了,重点掌握手动修改
7.通过真实的CentOS8服务器作为YUM软件仓库源(描述流程)
1.保证Linux系统是在连接外网的前提下做此实验(可以ping测试一下),百度中搜索华为镜像,即华为开源镜像站https://mirrors.huaweicloud.com/,点击CentOS,点击继续使用,选择CentOS版本为8
2.备份操作:cp -a /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak;如果觉得麻烦可以mkdir子目录把原来的配置文件放进去,需要的时候取出来就OK啦!
3.在Linux终端窗口中运行下方的命令wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.huaweicloud.com/repository/conf/CentOS-8-anon.repo,然后拷贝到/etc/yum.repos.d/下(原来的配置文件提前做好备份)
这里因为连接不上外网,我就切换到Windows下操作了:
4.yum clean all(清除缓存)
5.yum repolist (yum软件包情况列表)
6.yum -y install mariadb-server(去安装华为提供的软件包)
(记事本打开看也能看出其中的配置)
8.YUM软件仓库源常见错误的解决方法(yum.PID)(redhat7以及7之前的版本容易出现,我们只做了解)
解决方法:按照提示信息将对应文件/run/yum.pid删除即可。
小结:(通过本次课程学到了哪些知识;在实验过程中遇到的问题及解决办法)
通过本次课程,我学习了yum软件包管理,传统管理员的rpm管理命令,无法解决软件包的依赖性关系问题;yum 软件仓库就可以解决,但是要注意repo配置文件的问题:要学会如何正确的配置GPG检查,导入了自动生成repo的软件包也需要我们去配一个pgpcheck=0,不进行pgp检查。本次实验没有问题,对yum有了更深的理解,会用这个之后我们就可以对服务器进行导入各种第三方的软件包,升级与维护都要靠这些东西,很重要了!