##########yum源的建立##########
yum源是一个软件集合地,只需要搜索并安装想要的软件,它就会帮你解决大部分软件的依赖问题 本地yum源:比如说镜像光盘里一般会附带软件,这时候就可以把光盘当成本地源来安装软件 网络yum源:比如aliyun的镜像网站,这就属于网络源,可以通过互联网把软件下载然后安装 能够从指定的服务器下载RPM包并安装,可以自动处理依赖性关系 并且一次性安装所有依赖的包软件包,无需一次次频繁安装
实验条件:
1.真机ip:172.25.254.60,有已经拷贝过来的7.3版本的dvd镜像。
2/设置好的虚拟机镜像ip:172.25.254.15,可以ping通真机。
本地配置yum源:
首先创建一个目录/iso存放镜像文件
再创建一个目录/rhel7.3,将此目录设置为镜像文件挂载目录
挂载完毕后进入/rhel.7.3后ls查看文件
有Packages就说明有yum仓库了,也就是系统官方软件的安装库
repodata表示数据库有依赖性的信息,此时安装官方软件,不许处理依赖性的问题
注意:挂载后镜像文件提示只读,不是报错 repodata:官方软件安装的依赖性关系数据 此时直接利用yum命令安装存在官方软件不需要处理依赖性关系
可以看到Packages下有很多rpm包
例:abrt-cli-2.1.11-45.el7.x86_64.rpm
abrt-cli :软件名称 2.1.11-45 :版本 el7 适用系统:el7 x86_64:架构 rpm:适用rpm体系软件
设定系统的安装源指向:安装源指向是一个命名以repo结尾的文件,里面放的是本地yum源软件仓库的一些信息,必须切换到该路径下编辑以repo结尾文件,这样yum源才可以生效。
注意:该地址下所有文件必须都是有效文件,无效的不能在此目录下否则会影响yum源的使用。
[rhel7.3]软件库名称,任意写。 name=rhel7.3软件库描述信息,任意写。 baseurl=file:///rhel7.3本地软件安装访问地址 gpgcheck=0不让红帽公司检测这台主机要下载的第三方软件是否授权,不检测gpgkey
yum clean all 清空一下系统中原有的yum信息 yum repolist
此时就可以看到我的真机里具有软件安装仓库了。4751个软件。
如何从yum源上下载包? 执行yum install -y httpd :表示从yum上下载http包并安装 -y表示执行过程中yes/no选择yes
所以配置本地yum源很有用,可以方便下载需要的软件。
############共享型yum源的建立###########
在企业中一次性加入多台新的服务器时,此时服务器都是信息系统,没有yum源,不能安装软件 如果每台服务器都一个个去配置本地yum源的话会非常麻烦所以我们拿配置好yum源的一台主机,共享给其他主机,这样就很方便。
步骤一:
yum install httpd 共享前需要安装这个软件,提供超文本传输协议来实现yum源的文件共享,通过这个协议使yum源共享
在真机上配置好本地yum源后安装httpd这个官方软件直接从本地yum源里安装
complete安装完成!
步骤二:配置网络yum源
只有开启了httpd服务,将真机的本地yum源挂载在/var/www/html/下才能实现yum源共享 当真机共享/rhel7.3下文件给其他主机时,**必须关闭防火墙**
步骤三:设置开机启动httpd服务
步骤四:关闭防火墙,并且设置开机关闭
步骤五:后将镜像挂载在/var/www/html/下才能共享yum源,在/var/www/html下创建/rhel7.3文件夹为挂载文件夹
然后进行挂载
挂载成功,然后在虚拟机镜像中输入172.25.254.60/rhel7.3就可以看到真机共享的目录了。
步骤六然后我们可以在镜像里面 /etc/yum.repo.d下设置一个系统安装源导向westos.repo,文件结尾必须以.repo结尾。
然后我们就可以在虚拟机中直接输入命令来安装软件了。
成功!
##########如何永久挂载?#########
使虚拟机和真机重启之后依然有本地的yum源
在真机下输入:vim /etc.rc.d/rc.local
然后chmod +x /etc/rc.d/rc.local给他一个可执行权限,系统在开机时会自动执行此脚本
即可实现永久挂载。
reboot 重新启动后输入df发现,确实是实现了永久挂载
镜像里面也同样一直可以共享真机本地的yum源
yum命令
配置好yum仓库后才能使用yum命令对软件进行管理,前提使yum源已经写好 yum命令的使用必须在yum源(最起码要有本地的yum源),搭建成功后才可以正常运行,否则不生效
yum clean all清除所有的yum缓存,才会使用新的yum源
yum repolist 里出软件仓库信息
yum install software 安装一个软件
yum update 更新(慎重使用,当yum源版本与系统版本不一致时使用,一般直接更新版本的化可能会导致系统崩溃。企业里一般先备份原来的yum源版本,然后再重新安装一个新的版本)
yum list software 查看软件
yum list all 查看所有软件
yum list installed 列出已经安装软件
yum list available 列出可安装软件
yum reinstall software 重新安装软件
yum remove software 卸载软件
yum info software 查看软件信息
Name:名字
Arch:内核
version:版本
Release:45.el7
Size:大小
Repo:安装状态
yum search software 根据软件信息查找软件
yum whatprovides file 根据文件信息找出包含此文件信息的软件
我们先用一下ls命令,发现可以执行
然后rm -fr /bin/ls,再用ls就不可用了
于是我们需要在本地源里查看是什么软件提供了ls这个文件
所以我们只需要重新安装coreutils-8.22-18.el7.x86_64这个软件即可重新恢复ls文件
装好后发现ls命令又可以重新使用了。
yum history 查看系统中软件管理信息
yum history info数字 对数字为id的信息进行显示
yum group list 列出软件组
组表示一个功能的机和,安装一个软件可能要安装许多个安装包 为了方便,采用组安装比较快
yum group info 查看软件组的信息
yum groups install sfgroup 安装软件组
yum groups remove sfgroup 卸载软件组
####如何在linux中安装第三方软件——第三方软件仓库的搭建#######
只有本地yum源的时候安装第三方软件会出现死循环 此时就要用rpm强行安装一个,再用yum命令寻找依赖性的那个软件再安装,yum与rpm一起使用 用yum命令进行安装可以解决大多数问题,但是不能解决死循环问题 用rpm命令安装软件可以解决死循环的问题 系统是什么版本就用什么安装包
由于yum源软件仓库里没有第三方的软件安装包,所以只能在官方浏览器下载第三方的软件安装包,然后再用yum命令安装,但是利用下载下来的第三方软件安装包安装软件时要处理依赖性关系。
依赖性关系就是安装一个软件时会提醒你需要安装另外一个软件
实验:在虚拟机镜像做,因为怕给真机造成影响
因为虚拟机镜像node1已经有真机的yum源。 然后将找到的第三方软件包拷贝到虚拟机的/mnt下面 用yum命令安装需要处理依赖性关系,因为本地yum源里面的Packages和repodata里面没有第三方软件的安装包和依赖性关系说明
步骤一:将软件包从真机中拷贝到虚拟机里,这里有WPS,谷歌浏览器,花图软件和播放器软件
步骤二:安装
安装WPS
成功:
安装google chrome
安装成功!
然后输入google-chrome发现此时谷歌浏览器用不了
拷贝一份叫libudev.so.1的文件,命名为libudev.so.0,然后再执行google-chrome
发现需要用普通用户才能打开谷歌浏览器。
切换到student用户,发现可以使用google浏览器
安装smplayer
在安装时候,报错,原因在安装谷歌浏览器的同时,谷歌浏览器生成了自己的网络源,会干扰本地的yum源,所以我们要删除这个网络源
现在开始安装smplayer
我们会发现安装时存在依赖性关系,然后再安装mplayer后,再安装smplayer就可以成功安装smplayer了
安装成功!
安装kolour画图软件
首先用rpm -ivh 安装,发现有很多依赖性的问题
用yum install kolour-lib --skip broken (解决能解决的依赖性问题)
然后再用rpm -ivh kolour-lib --nodeps 来安装lib忽略软件依赖性(解决不能解决的依赖性问题)
再用yum install kolour 来安装主软件,即可安装成功
安装成功!
##########如何创建第三方软件的仓库###########
利用createrepo来搭建第三方软件仓库,这样第三方的软件安装包也会有repodata,就可以自动识别依赖性直接安装了。 yum不能安装第三方软件,因为不能识别依赖性 因此应该使用createrepo来给第三方软件添加依赖性的数据库 这样安装时候就会直接和生成,自动去识别依赖性 第三方软件库每次添加一个安装包,都要create一次,生成一次
步骤一:将所有的rpm包放到一个目录中,我放入了/mnt下
步骤二:createrepo -v 存放软件包的目录 ##命令执行成功会生成repodata目录
可见/mnt已经有repodata这个文件夹了,此后可以直接利用yum命令安装第三方软件了,不需要处理依赖性问题了。
为了方便,将/mnt/*移动到/software/下面
步骤三:在之前的yum源仓库文件里写入第三方软件的安装信息
步骤四:退出保存,查看/software/repodata中的依赖性关系
可看到一个依赖性关系的压缩包
把压缩包移动到/mnt目录下
步骤五:gunzip解压这个压缩包
此时已经生成了这6个第三方软件的仓库
可以看出我们的yum repolist现在有4757个源,比原来4751多了6个,第三方软件仓库创建成功
生效后,一次性安装绘图软件
我们先卸载之前的kolour软件,用yum remove 命令
卸载成功,然后我们再重新安装,用yum install来安装
一次性直接安装成功,不需要处理依赖性。
#####rpm命令处理软件######
rpm -i安装软件 rpm -v显示软件安装过程 rpm -h 采用hash加密
rpm -e 卸载软件
没有office了
rpm -q 查看指定软件包是否安装
rpm -a 所有
rpm -ql 查看软件在系统中的安装文件路径以及 文件
rpm -qlp 查看未安装的软件会产生什么文件
rpm -qf 根据某个文件找出此文件属于哪个安装包
rpm -qc 查看软件的配置文件
rpm -qd 查看软件的帮助文档
rpm -q --scripts 查看软件包安装前和安装后的脚本
rpm --nodeps 安装软件忽略软件依赖
rpm -force 强行重新安装(只要无依赖性)
rpm -Kv 检测软件是否被篡改,可以对比SHA1 和MD5等