实验目标:

1,在线使用yum寻找远程yum源(软件包集中存放地点)进行安装卸载

2,离线状态利用本地镜像实现软件包的安装卸载(rpm命令)

3,离线状态创建本地的yum仓库,通过yum解决软件包的依赖关系

实验环境:

   装有Centos7版本Linux系统的虚拟机(前面博客有具体安装过程)

   Centos7镜像链接:https://pan.baidu.com/s/1Jg66BsqgYjvT54RT-S-5iQ 

提取码:5hli 


前言:

Yum概述


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

Yum常用命令

命令功能
yum list列出yum仓库的软件包
yum install -y httpd(软件包)安装httpd软件,-y表示不需要交互直接安装
yum remove httpd(软件包)卸载httpd软件
yum clean all清理yum仓库的缓存

Yum仓库的配置文件

yum仓库配置文件位置
[root@localhost ~]# cd /etc/yum.repos.d
[root@localhost yum.repos.d]# ls
CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo
CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo
[root@localhost yum.repos.d]# vim CentOS-Base.repo

微信截图_20190815124844.png

配置文件的详细信息
[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

微信截图_20190815125510.png

(一)在线使用yum安装软件包(保持你的Linux系统能够上网)

安装一个httpd服务为例,并用宿主机能够访问httpd服务的网站

1,安装httpd

[root@localhost ~]# yum install -y httpd  安装

[root@localhost ~]# rpm -q httpd      查看是否安装
httpd-2.4.6-89.el7.centos.1.x86_64

微信截图_20190815124844.png

微信截图_20190815125510.png

2,用宿主机访问httpd服务网页,查看是否成功安装并可以访问

第一步 开启httpd服务并关闭防火墙

[root@localhost ~]# systemctl start httpd.service     开启httpd服务
[root@localhost ~]# systemctl stop firewalld.service  关闭防火墙
[root@localhost ~]# setenforce 0                      关闭增强型安全功能
[root@localhost ~]# ifconfig                          查看你的虚拟机的ip地址
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.109.133  netmask 255.255.255.0  broadcast 192.168.109.255
        inet6 fe80::f800:6daf:6463:52c4  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:3e:a2:82  txqueuelen 1000  (Ethernet)
        RX packets 4234  bytes 4632944 (4.4 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 728  bytes 55605 (54.3 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

第二步 用宿主机的浏览器访问虚拟机的ip地址,我们能够访问到httpd的网页

微信截图_20190815133223.png

3,卸载httpd服务

[root@localhost ~]# yum remove -y httpd 卸载httpd

[root@localhost ~]# rpm -q httpd        查看软件包,显示已经被卸载了
未安装软件包 httpd

微信截图_20190815131328.png

此时宿主机就不能够访问了,因为httpd服务卸载了

微信截图_20190815133223.png

(二)离线状态利用本地镜像实现软件包的安装(rpm)

1,将虚拟机网络模式设置成仅主机模式(将在线状态变为离线状态)

第一步 在虚拟机的右下角如图图标处右击,进入虚拟机设置

第二步 选择网络适配器,并将网络连接模式更改为仅主机模式

第三步 确定退出

微信截图_20190815133223.png

2,给虚拟机配置静态IP

找到此Linux系统虚拟机的网卡配置位置并进行vim配置

[root@localhost ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33

配置网卡

第一步 将dhcp更为static静态

第二步 添加ip地址,子网掩码,网关

第三步 wq保存退出vim编辑器

第四步 重启网卡服务

[root@localhost ~]# service network restart  重启网卡服务

微信截图_20190815133223.png

微信截图_20190815133223.png

3,清理yum仓库缓存

[root@localhost ~]# yum clean all  清缓存
 
[root@localhost ~]# yum list       查看yum仓库

微信截图_20190815133223.png

4,利用虚拟机的cd/dvd将镜像挂载到Linux系统中

第一步 将虚拟机光盘添加使用centos7的镜像文件

微信截图_20190815133223.png

第二步 查看挂载信息,利用mount命令将设备中的镜像文件挂载到系统/mnt目录下

微信截图_20190815124844.png

微信截图_20190815125510.png

第三步 利用cd命令切换到mnt下的packages包文件下,并查看,所有的RPM包都在这

微信截图_20190815131328.png

实例:我们卸载vim软件包,在用rpm命令进行离线安装

5,卸载vim软件包

[root@localhost Packages]# rpm -qa | grep -i vim
vim-filesystem-7.4.160-2.el7.x86_64
vim-enhanced-7.4.160-2.el7.x86_64
vim-minimal-7.4.160-2.el7.x86_64
vim-common-7.4.160-2.el7.x86_64
[root@localhost Packages]# rpm -evh vim-enhanced-7.4.160-2.el7.x86_64
准备中...                          ################################# [100%]
正在清理/删除...
   1:vim-enhanced-2:7.4.160-2.el7     ################################# [100%]
[root@localhost Packages]# vim /etc/passwd
bash: /usr/bin/vim: 没有那个文件或目录

第一步 先用rpm查看所有软件包并筛选出vim软件包

第二步 用rpm命令删除vim软件包

第三步 成功删除,vim使用不了

微信截图_20190815133223.png

6,重新安装vim

[root@localhost Packages]# rpm -ivh vim-enhanced-7.4.160-2.el7.x86_64.rpm

微信截图_20190815133223.png

结果:实现离线安装软件包

弊端:不能自动解决依赖关系

想卸载vim-common因为存在依赖关系所以提示你被vim-enhanced所需要,不能自动处理依赖关系,所以创建一个本地的yum仓库用yum命令就方便的多

微信截图_20190815133223.png

(三)离线状态创建本地的yum仓库,通过yum解决软件包的依赖关系

1,利用cd命令切换到yum仓库的配置文件目录,并将原来的文件放置到一个新的目录中

[root@localhost Packages]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# ls
CentOS-Base.repo  CentOS-Debuginfo.repo  CentOS-Media.repo    CentOS-Vault.repo
CentOS-CR.repo    CentOS-fasttrack.repo  CentOS-Sources.repo
[root@localhost yum.repos.d]# mkdir bak
[root@localhost yum.repos.d]# mv CentOS* bak

微信截图_20190815133223.png

2,在yum.repos.d目录下创建一个本地的yum仓库的配置文件abc.repo

第一步  创建配置文件abc.repo

[root@localhost yum.repos.d]# vim abc.repo 创建一个的本地yum仓库的配置文件abc.repo

第二步 进入vim编译器,添加配置文件的信息,然后保存退出

微信截图_20190815133223.png

第三步 yum list查看yum仓库列表

微信截图_20190815133223.png

实例:安装卸载httpd,测试httpd服务能否让宿主机连接

3,用yum安装httpd

微信截图_20190815133223.png

4,用宿主机去访问httpd服务的网站

第一步 在Linux系统中开启httpd服务并关闭防火墙

微信截图_20190815133223.png

第二步 将宿主机的vmnet1配置ipv4地址与Linux系统同网段的ip地址

微信截图_20190815155804.png

第三步 在你的宿主机浏览器中输入Linux的静态ip地址,成功访问

微信截图_20190815155536.png

5,卸载httpd软件

卸载

yum remove httpd 卸载httpd

微信截图_20190815160338.png

此时我们再访问就无法访问了,说明httpd软件已经被卸载了

微信截图_20190815160406.png

结果:实现离线创建本地的yum仓库,并可以使用yum进行安装卸载,解决依赖关系


后语:

我们实现了在线的yum程序的管理,离线状态通过镜像进行软件包的安装,以及为解决依赖关系自己创建本地的yum仓库

实验成功

欢迎观看,谢谢!!!