Linux中yum源的配置、搭建、使用、rpm命令

实验内容:Linux中yum源的配置、搭建及使用

实验环境:redhat7.3虚拟机

实验结果:dhcp、http、共享yum、第三方yum、yum黑白名单

yum简介

Yum(全称为 Yellow dog Updater, Modified)是一个在Fedora和RedHat以及CentOS中的Shell前端软件包管理器。基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

借助于YUM软件仓库,可以完成安装、卸载、自动升级rpm软件包等任务,能够自动查找并解决rpm包之间的依赖关系,而无需管理员,手工去安装每个rpm包,使管理员在维护大量Linux服务器时更加轻松自如。特别是拥有大量Linux主机的本地 络中,构建一台源服务器可以大大缓解软件安装、升级等对lnterner的依赖。

yum服务器概述

yum软件仓库通常借助HTTP或FTP协议来进行发布,这样可以面向 络中的所有客户机提供软件源服务。为了便于客户机查询软件包,获取依赖关系等信息,在软件仓库中需要提供仓库数据(Repodata)【文章下方有解释】,其中收集了目录下所有rpm包的头部信息

yum源的搭建

在安装虚拟机时镜像中一共有4620个包,但是在安装虚拟机时只会安装1000多个包。所以会需要使用yum来将即将使用而不存在软件包下载到本地;

搭建yum之前“df”查看一下系统盘的挂载情况;

由于实验在虚拟机中进行,安装yum需要将物理机上的镜像通过光驱添加到虚拟机上,挂载到虚拟机的“rhel7.3”【名字自起】这个目录下,以便于使用镜像中的安装包。

1.将物理机上的镜像通过光驱添加到虚拟机上;

选择要使用的虚拟机,在虚拟机关闭的状态下,点击灯泡图标后再点击Add Hardware后添加光驱

将设备类型Device Type选择为CDROM device,点击Manager选择真机的镜像;全部设置后点击Finish完成操作;

此时除点击灯泡会出现光盘图片外;在虚拟机显示界面也会出现光盘图像

至此,物理机上的镜像通过光驱添加到虚拟机上工作完成;默认情况下,光驱是挂载在这个目录下;可以利用df命令进行查看

2.挂载光驱镜像到虚拟机的“rhel7.3”【名字自起】目录,以便于使用镜像中的安装包

上图中的/dev/sr0就是桌面上的光盘,因为默认的挂载目录名有空格不能识别,所以应该在 / 目录重新创建了一个目录rhel7.3作为光驱的挂载

mount命令进行挂载之后,rhel7.3目录下就会出现很多的文件和目录,这些文件和目录就是在安装系统时的镜像里面的内容。

修改完成后,使用以下命令将yum源刷新:

至此yum搭建完成。

一、通过对虚拟机yum源配置,安装dhcp 

dhcp的软件包在操作系统的镜像中就有。

DHCP(动态主机配置协议)是一个局域 的 络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子 掩码。默认情况下,DHCP作为Windows Server的一个服务组件不会被系统自动安装,还需要管理员手动安装并进行必要的配置。

如果要安装dhcp,可以先使用以下命令查看yum源中是否有该软件包

由上图可以看到yum源中存在dhcp的软件包,故可以使用以下命令在yum中直接安装dhcp:

 在文章刚开始有提到仓库数据(Repodata):依赖性说明数据库;

Repodate目录下放置的是软件源里面所有rpm包的元数据和它们的依赖关系;使yum安装软件时不需要处理依赖关系;

是存放新创建的以repo为结尾的配置文件所指向的目录下的软件的路径、索引等;以dhcp为例:在yum安装dhcp的过程中,首先访问.repo所指向的文件目录,即file:///rhel7.3;然而yum并不能识别为安装软件,所以就需要一个存放可以供yum识别的目录文件,去保证yum可以进行下载,此时yum就浏览访问repodata目录,索引dhcp,匹配路径进行下载。

 

二、通过对虚拟机yum源配置,实现安装资源共享(httpd)

查看一下防火墙中是否有了已允许http服务:

如图火墙允许的services中已有了http服务

建立共享目录,并挂在镜像文件到共享目录上
mkdir /var/www/html/rhel7.1               #在http服务默认文件发布目录下创建rhel7.1文件夹
umount /westos                                         #卸载刚刚的yum源
mount  /der/br0 /var/www/html/rhel7.1    #将镜像挂载到http发布目录的rhel7.1文件夹下

注意:取消先前实验的挂载来使实验环境干净

测试:在浏览器中输入:http://本机ip/rhel7.1;可以看到镜像中的内容

三.第三方软件仓库的搭建

所有的rpm软件包放到一个目录中,这个目录中只能存在rpm文件;

一般存放在http默认文件发布目录下(在默认发布目录下创建一个sofeware目录):

 如何将主机上的rpm包复制到虚拟机上:

注意:在ip地址后一定需要跟“ :”表示说明一下;另外命令执行过程中,前期缓冲较慢可能是因为所传位置DNS是打开状态;需要进入到所传位置的相关文件下修改配置文件;

 在文件内搜索DNS找到后,将yes改为no

修改成功后执行重启命令systemctl restart sshd

 此时虚拟机相关文件夹下即可查看到所传rpm包

执行“createrepo -v /存放软件包目录 ”:使之生效,会生成一个repodata目录

执行完成后可以ls查看一下

为什么官方软件yum可以安装 /strong>

可以识别依赖性 因为依赖性全部已经在库里面;yum不能安装第三方软件, 因为不能识别依赖性,因此应该使用一个createrepo 工具给第三方软件添加依赖性的数据库;这样安装的时候就直接生成,自己自动去识别依赖性,第三方软件库每次添加一个安装包,都要create一次,生成一次

redhat  packages manager软件包名称详解
kolourpaint-4.10.5-4.el7.x86_64.rpm

[1]kolourpaint 软件名称
[2]4.10.5 版本
[3]4.el7 适用系统
[4]x86_64 架构
[5]rpm 适用rpm体系软件

在本地yum源指向文件中添加如下内容

执行yum clean all

这样第三方软件仓库中的内容也可以使用yum直接安装了;

 查看依赖性关系

四、yum命令的使用

yum clean all 清除所有的yum缓存,才会使用新的yum源
yum repolist 列出软件仓库信息
yum install software 安装一个软件
yum update 更新
yum list software 查看软件
yum list all 查看所有软件
yum list installed 列出所有已安装软件
yum list available 列出可安装软件
yum reinstall software 重新安装软件
yum remove software 卸载软件
yum info software 查看软件信息
yum search software信息 根据软件信息查找软件
yum whatprovides file 根据文件信息找出包含此文件信息的软件(不管有没有装过该软件)
yum history 查看系统中软件管理信息
yum history info 数字 对数字为id的信息进行显示
yum groups list 列出软件组
yum groups info 查看软件组的信息
yum groups install sfgroup 安装软件组
yum groups remove sfgroup 卸载软件组

yum update 更新(慎重使用,当yum源版本与系统版本不一致时使用,一般不用)

在企业当中会先备份原来的,再彻底卸载,然后重新安装一个新的版本
如果直接更新版本的话,可能会导致系统崩溃,一般不会做更新
而且更新比较麻烦,文件数量多,一般采用重新安装的办法

yum info software 查看软件信息

依赖性关系:安装一个软件时会提醒你需要另外一个(死循环)

只有本地yum源的时候安装第三方软件会出现死循环;此时就要先用rpm命令强行安装一个,再用yum命令寻找依赖性的那个再去安装,yum与rpm结合使用。用yum命令进行安装可以解决大多数的问题,但是不能解决死循环的问题;用rpm命令安装软件可以解决死循环的问题;系统是什么样的版本就用什么样的安装包。

 五、用rpm命令处理软件

rpm -i 安装软件
rpm -v 显示软件安装的过程
rpm -h 采用hash加密
pm -e 卸载
rpm -q 查看
rpm -a 显示所有
rpm -p 查找软件包
rpm -ql 查看软件在系统中的安装文件路径
rpm -qlp 查看未安装的软件在系统中如果安装后产生文件的路径
rpm -qf 根据某个文件找出此文件属于那个安装包(压根没装过不行,装过删了)
rpm -qc 查看软件的配置文件名称
rpm -qd 查看软件的帮助文件
rpm –scritps 查看脚本
rpm –nodeps 安装软件忽略软件依赖
rpm –force 强行安装(只要没有依赖性)
rpm -Kv 检测软件包是否被篡改

六、yum的黑白名单

屏蔽32位软件

需要修改配置文件,在[root@localhost ~]# vim /etc/yum.conf文件中添加exclude=*x86_64*这一行;

执行 yum list  all,所有64位的软件包全部被屏蔽

未添加前

添加后

可以看到添加前仍存在i686:32位文件;添加后64位会高亮且不再有32位文件

文章知识点与官方知识档案匹配,可进一步学习相关知识云原生入门技能树首页概览8581 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年9月18日
下一篇 2020年9月18日

相关推荐