1.什么是yum源?
yum源就是一个软件集合地,你只需要搜索并安装你想要的软件,它会帮你解决大部分软件的依赖问题本地yum源:比如说光盘里面一般会附带一些软件,这个时候就可以把光盘当成本地源来安装软件网络yum源:比如说aliyun的镜像网站,这就属于网络源,可以通过互联网把软件下载下来并安装 yum的全称是yellow dog updater,modified,是一个shell前端软件包管理器,基于RPM包管理能够从指定的服务器下载RPM包并自动安装,可以自动处理依赖性关系并且一次性安装所有依赖的软件包,无需一次次频繁的下载和安装
2.实验环境
我所使用的虚拟机node1是虚拟机ttt的快照因此node1是一个全新的系统,里面没有任何软件安装包
node1的生成过程如下:
步骤一:在真机里面给ttt虚拟机做一个快照虚拟机noed1
步骤二:以root身份登陆node1虚拟机,帐号和密码与ttt虚拟机一样,然后给node1虚拟机配置网络
先配置网络的思路如下:先切换到网络配置目录下:cd /etc/sysconfig/network-scripts/然后ls: 查看eth0网卡是否存在再vim ifcfg-eth0 改配置文件: 加ip地址 ,子网掩码 等等重启网络systemctl restart network然后ping一下自己的真机 看网络是否配置好ip addr show eth0查看是否设置好
步骤三:检查node1虚拟机是否有软件安装库 ,一个全新的系统应该是没有的,可以看到没有
步骤四:查看node1虚拟机的版本,确保接下来配置yum源的镜像与node1主机的版本一致
3.实验目的
给新系统node1一个软件安装的仓库,node1才可以安装软件让一个全新的虚拟机node1可以下载并且安装软件(包括官方软件和第三方软件)先配置本地yum源只能安装官方软件再搭建第三方仓库之后才可以安装第三方软件下面我将一一讲解
4.配置本地yum源
(1)获得一个与本机系统版本一致的镜像
将真机的软件安装包镜像文件复制到node1虚拟机中在虚拟机当中使用scp命令即可 要清楚自己真机的镜像在哪放着但有可能虚拟机容量不够,采用光驱方式
将真机的虚拟机安装镜像传到我的全新的虚拟机里面先搞清楚自己真机的镜像在哪里放着 /home/kiosk/Downloads/rhel-server-7.3-x86_64-dvd.iso
快照虚拟机装软件仓库空间不够时的解决办法?在真机里面给node1虚拟机添加一个光驱,将镜像塞到node1的光驱里面(node1关机情况下)解决办法:给虚拟机添加光驱,将镜像直接放到光驱里面
(2)配置本地yum源
步骤一:挂载镜像(镜像挂载到一个目录上才可以被识别)
镜像文件给好以后,还要将镜像文件挂载起来,才会有软件库,才能安装软件
说明:
注意:镜像文件只读 ,不属于报错搭建好本地yum源之后出现的repodata目录里面存放的是官方软件安装的依赖性关系此时直接利用yum命令安装存在官方软件不需要处理依赖性关系
redhat packages manager软件包名称详解kolourpaint-4.10.5-4.el7.x86_64.rpm
步骤二:设定永久挂载(使node1重启之后依然有本地yum源)
步骤三:设定系统安装源指向
实际上是一个命名以repo结尾的文件,里面存放的是本地yum源软件仓库的一些信息
yum clean all 清空一下系统中原有的yum信息yum ropolist 就可以看到此时有软件安装库了,不再是0
总结:给node1虚拟机配置好本地yum源之后,node1虚拟机就可以安装红帽公司官方提供的软件了
其实给node1主机配置本地yum源就是想使用已有网络安装资源安装软件
如何从yum下载包?执行yum install -y https:表示从yum上下载https包并安装-y表示执行过程中yes/no选择yes,减少人机交互这里获取安装包是从网络上获取并下载而实际情况更多的是局域网,无法从外网下载https安装包,此时配置本地yum很有用
5.共享型yum源的部署
当企业中一次性引进多台新的服务器时,此时的服务器都是新系统,没有yum源,不能安装软件如果每台服务器都一个一个去配置本地yum源的话会很麻烦因此配置好一台主机的本地yum源之后再共享给其它主机,这样就很方便了这就需要给一台主机配置共享型的yun源
将yum源共享,让企业当中多个服务器使用同一个yum源,否则一个一个安装yum源会浪费时间
http是超文本协议,协议是数据传输方式的规则,程序就是由进程开启的,进程由软件来提供
文件传输协议包括http和file,http为超文本传输协议
(1)在一台已经配置好本地yum源的主机node1上安装httpd(httpd属于官方软件,有本地yum源就可以直接安装)
yum install httpd 安装这个软件的目的:提供超文本传输协议来实现yum源文件共享,通过这个协议使yum源共享
(2)配置网络yum源
只有开启httpd服务,将node1的本地yum源挂载在/var/www/html/下才能实现yum源共享当node1共享/westos/下的文件给其它主机时,必须关闭防火墙
(3)测试:在真机的浏览器当中看是否能查到node1主机的共享目录
在浏览器中输入地址:http://ip/westoshttp://ip/rhel7.2http://172.25.254.111/westos <<<<此地址就是网络yum源地址
总结:共享型yum源搭建成功了,别的主机可以利用我的yum源软件仓库来安装官方软件了
共享型yum源的部署 (共享什么东西,把自己的什么东西上去即可)
别的主机在浏览器里面输入我的ip以及目录就可以看到我的东西
6.yum命令
配置好yum仓库之后才能使用yum命令对软件进行管理 ,前提是yum源已经写好yum命令的使用必须是在yum源(最起码要有本地yum源)搭建成功后才能正常运行,否则不生效
yum命令的详细用法
yum clean all 清除所有的yum缓存,才会使用新的yum源
yum repolist 列出仓库信息
yum install software(软件名称) 安装一个软件
yum update 更新(慎重使用,当yum源版本与系统版本不一致时使用,一般不用)
在企业当中会先备份原来的,再彻底卸载,然后重新安装一个新的版本如果直接更新版本的话,可能会导致系统崩溃,一般不会做更新而且更新比较麻烦,文件数量多,一般采用重新安装的办法
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命令使用总结:一般情况下yum命令直接跟软件名字直接进行操作即可
只有本地yum源的时候安装第三方软件会出现死循环此时就要先用rpm命令强行安装一个,再用yum命令寻找依赖性的那个再去安装,yum与rpm结合使用用yum命令进行安装可以解决大多数的问题,但是不能解决死循环的问题用rpm命令安装软件可以解决死循环的问题系统是什么样的版本就用什么样的安装包
7.怎样在linux中安装第三方软件(第三方软件仓库的搭建)?
由于yum源软件仓库里面没有第三方软件的安装包只能先在官方浏览器里面下载第三方软件的安装包,然后再用yum命令安装但是利用下载下来的第三方软件安装包安装第三方软件时要处理依赖性关系依赖性关系就是安装一个软件时会提醒你需要另外一个(死循环)
(1)实验思路:
先让ttt虚拟机具有本地yum源(共享不共享无所谓)然后将我真机里面的第三方软件安装包下载到我的ttt虚拟机的/mnt下面此时直接用yum命令安装需要处理依赖性关系,因为本地yum源里面的Packages和repodata里面没有第三方软件的安装包和依赖性关系说明最后利用createrepo来搭建第三方仓库,这样第三方软件安装包也会有repodata,此时就可以直接安装了
(2)实验环境:我在ttt虚拟机里面做实验
(3)实验目的:给ttt虚拟机安装第三方软件,且不需要处理依赖性关系
(4)实验步骤:
步骤一:查看第三方软件安装包在我的真机中的存放路径
步骤二:将我的真机里面的第三方软件的安装包下载到我的ttt虚拟机
说明:这里的画图软件、谷歌浏览器、办公软件均属于第三方软件
步骤三:创建第三方软件的仓库
实验前提:有第三方软件安装包
把所有的rpm包放到一个目录中
createrepo -v /存放软件包的目录 ##命令执行成功会生成repodate目录
为什么官方软件yum可以安装 ?可以识别依赖性 因为依赖性全部已经在库里面yum不能安装第三方软件, 因为不能识别依赖性 因此应该使用一个createrepo 工具给第三方软件添加依赖性的数据库这样安装的时候就直接生成,自己自动去识别依赖性第三方软件库每次添加一个安装包,都要create一次,生成一次
为了识别方便起见,我将/mnt/* 移到 /software/下面
在之前的yum源仓库文件里面写入第三方软件安装的信息
查看依赖性关系
编辑yum源软件仓库文件使第三方软件的依赖性生效
一次性安装好绘图软件
如果没有第三方仓库安装绘图这个第三方软件要如下处理:rpm -ivh kolourpaint-4.10.5-4.el7.x86_64.rpmyum whatprovides */libqimageblitz.s0.4 查看安装源rpm -ivh kolourpaint-libs-4.10.5-4.el7.x86_64.rpm --nodepsrpm -ivh kolourpaint-4.10.5-4.el7.x86_64.rpm
8.用rpm命令处理软件
rpm -i 安装软件
rpm -v 显示软件安装的过程
rpm -h 采用hash加密
rpm -e 卸载
rpm -q 查看
rpm -a 所有
rpm -p 软件包
rpm -ql 查看软件在系统中的安装文件路径
rpm -qlp 查看未安装的软件在系统中如果安装后产生文件的路径
rpm -qf 根据某个文件找出此文件属于那个安装包(压根没装过不行,装过删了)
rpm -qc 查看软件的配置文件名称
rpm -qd 查看软件的帮助文件
rpm --scritps 查看脚本
rpm --nodeps 安装软件忽略软件依赖
!!!此时谷歌浏览器用不了
谷歌自己的yum源用不了 ,将它删除
cp lib64/libudev.so.1 /lib64/libudev.so.0
这个只能用普通用户身份登陆,才能使用谷歌浏览器
rpm --force 强行安装(只要没有依赖性)
rpm -Kv 检测软件包是否被篡改
注意:
当只有本地yum源的时候,用yum命令只能安装官方软件,不需要处理依赖性关系当只有本地yum源并且想安装第三方软件的时候,yum不能处理依赖性关系,这时候就需要使用rpm命令和yum命令配合了当搭建好第三方软件仓库的时候,这时候可以用yum命令直接安装第三方软件,而且不需要处理依赖性关系`