内农大-大数据专业课程-Linux虚拟机技术7-YUM软件仓库技术

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有了更深的理解,会用这个之后我们就可以对服务器进行导入各种第三方的软件包,升级与维护都要靠这些东西,很重要了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值