一、yum命令和rpm命令
yum是软件包管理器,可以自动处理依赖性关系,并且一次安装所有依赖的软体包,无须繁琐地一次次下载、安装。而rmp是真实下载,对于依赖性的安装包需要自己手动下载。
A. yum命令
yum install softwarename // 安装软件
yum remove softwarename //卸载软件
yum reinstall softname //重新安装软件
yum search softwarename //根据软件信息搜索软件
yum whatprovides */ls //根据软件包的某个文件(命令)名称搜索软件
yum repolist //列出设定yum源信息
yum list //查看软件源是不是有此软件
yum list all //列出所有软件名称
yun list available //列出可以用yum安装的软件名称
yum list installed //列出已经安装的软件名称
yum update //更新软件
yum history //显示信息(安装、卸载)
yum info //查看软件信息
yum groups list //查看软件组信息
yum groups info softwaregroup //查看软件组内包含的软件
yum groups install softwaregroup //安装组件
注:在使用时,httpd必须是开启的状态,如果关闭httpd(systemctl stop httpd),则会下载报错。
如何设定yum源的黑名单:
--》 编辑文件:vim /etc/yum.conf,并在有效命令最后一行写入 exclude=*.i686 ,表示的含义是:屏蔽所有软件名后含有 i686的软件; (如果想要屏蔽某个软件,直接空格加软件名,如exclude=*.i686 zsh.x86_64)
--》 yum list ##编辑文件前yum list查询,编辑文件后yum list查询,对比前后的差别;
前:
后:
B . rpm命令
rpm -ivh 软件包(rmp) ##安装软件,-v显示过程,-h指定加密方式
rpm -e 软件名 ##卸载
rpm -ql rpm -q +软件名(精确名称) ##查询软件生成文件
rpm -qlp 软件包(rpm) ##查询软件安装后会生成什么文件
rpm -qc 软件名 ##查询软件的配置文件名称
rpm -qd 软件名 ##查询软件的说明文件名称
rpm -qa ##查询系统中安装的所有软件名称
rpm -qa | grep + 软件名(模糊关键字) ##查询这个软件是否安装(这里的grep是搜索功能)
rpm -q 软件名(精确名称) ##查询这个软件是否安装
rpm -qf 文件名 ##查看filename属于那个安装包
rpm -qp 软件包(rpm) ##查询软件包安装后在系统的名字
rpm -qi 软件名 ##查询软件信息
rpm -qip 软件包(rpm) ##软件包的信息
rpm -Kv 软件包(rpm) ##检测安装包是否被篡改
rpm -qp 软件包(rpm) --scripts ##检测软件在安装或卸载过程重执行的动作
实验 1 :关于rpm -q 和rpm -qa 的差别(在有wps安装包的前提下)
实验 2 :关于检测安装包是否被篡改
未篡改前的查询结果:
操作: 追加westos到安装包
篡改后的查询结果:
二、本地yum源配置(实验本机是7.2)
步骤:(1)查询系统版本(hostnamectl),下载一个和系统相匹配的镜像文件到系统中,如果你的系统是7.0的,那就下载
rhel-server-7.0-x86_64-dvd.iso ,如果是7.2的话,那就下载rhel-server-7.2-x86_64-dvd.iso
如:我们查询虚拟机的系统版本,是7.0
(2)因为下载后的镜像是在桌面上,为了防止文件丢失,我们建立目录/iso,将桌面上的2个版本的镜像服务移动至/iso。(这步操作不是必须的)
mkdir /iso
mv /home/kiosk/Desktop/*.iso /iso
(3)mkdir /source7.0 /source7.2
这个步骤是为了可以看到镜像里的文件,新建两个目录,举个例子,此时新建目录的作用相当于光驱,镜像的作用相当于光盘;
(4)实现挂载
mount /iso/rhel-server-7.0-x86_64-dvd.iso /source7.0
mount /iso/rhel-server-7.2-x86_64-dvd.iso /source7.2
(5)在目录/etc/yum.repos.d/下,编辑下载软件路径的文件vim /etc/yum.repos.d/yum.repo,编辑内容为:
其中,file:// 为本地文件; http 为超文本文件
(6)yum clean all //清理缓存
yum install dhcp //安装dhcp看是否可以成功,如果可以,那么本地共享源已成功,并且,将会在source7.2下下载dhcp软件
三、网络共享yum源
( 1 )在本地yum源配置完成之后,安装apache;
yum install httpd //下载这个软件是为了实现共享
systemctl start httpd //开启共享服务
systemctl enable httpd
systemctl stop firewalld //关闭防火墙
systemctl disable firewalld
( 2 )建立网页挂载点
mkdir /var/www/html/source7.0 /var/www/html/source7.2
( 3 )挂载镜像
mount /iso/rhel-server-7.0-x86_64-dvd/iso /var/www/html/source7.0
mount /iso/rhel-server-7.2-x86_64-dvd/iso /var/www/html/source7.2
( 4 )访问测试
打开浏览器,输入地址: http://ip/source7.0 (其中ip为挂载点的主机地址),假设我的主机地址为172.25.254.66,则如果显示如图所示,网页共享yum源已成功。
( 5 )配置虚拟机(在虚拟机上我们尝试利用主机的共享yum源下载软件)
打开虚拟机desktop
rm -fr /etc/yum.repos.d/* ##删除原来虚拟机中软件下载源
vim /etc/yum.repos.d/yum.repo ##重新编辑下载路径
[source7.0] ##编辑内容(因为虚拟机是7.0,所以下载源也是连接7.0的)
name=source7.0
baseurl=http://172.25.254.22/source7.0
gpgcheck=0
尝试下载软件,成功!
注:挂载是临时的,当reboot后,需要手动重新挂载。所以,我们可以让系统开机时自动挂载,必须将挂载命令写入文件 /etc/rc.d/rc.local,实现开机自动挂载。要记得文件保存退出之后,赋予此文件以执行权限,即:chmod +x /etc/rc.d/rc.local。方式如下所示,
然后reboot(重启本机),观察现象,发现系统开机时会自动挂载。
四、第三方软件仓库的搭建
何谓第三方软件仓库?
我们把包含repodata的目录称为第三方软件仓库;
(1)创建一个专门存放所有rpm软件报的目录/mnt/software;
mkdir /mnt/software
(2)扫描生成软件包数据库文件
cd /mnt/software
createrepo .
(3)编辑文件内容;
vim /etc/yum.repos.d/yum.repo
(4)yum clean all
在完成搭建第三方软件仓库的基础上,我们又该如何在网络共享?
第一步,安装http;
第二步,关闭防火墙,打开httpd服务;
第三步,cp -r /mnt/software/ /var/www/html/
第四步,在网页上进行测试,输入网址:http://172.25.254.69/software,检测网络源是否成功;如果出现所共享的软件包,则成功;反之不成功。失败需要去排查错误,如:是不是防火墙没关、文件内容编辑有误。