yum是一个基于RPM包(是Red-Hat Package Manager红帽软件包管理器的缩写)构建的软件更新机制,能够自动解决软件包之间的依赖关系。在客户机中只 要正确指定软件仓库的地址等信息,就可以通过对应的“源”服务器来安装或更新软件。
先在yum服务器上创建 yum repository(仓库),在仓库中事先存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录repodata下),当yum客户端利用yum/dnf工具进行安装时包时,会自动下载repodata中的元数据,查询远数据是否存在相关的包及依赖关系,自动从仓库中找到相关包下载并安装。
yum需要依赖于环境,依赖于服务端和客户端,允许跨网络
服务器:
RPM包 (Packages文件夹中)
元数据(repodata文件夹:目录(软件的目录),软件的依赖关系,软件的位置)
客户端的配置文件中
baseurl=地址 一定要写到到 这两个文件夹 repodata packages 的上级目录
位置:/etc/yum.conf 主配置文件
位置:/etc/yum.repos.d/*.repo yum仓库文件位置
位置:/var/log/yum.log 日志文件
yum remove <软件名> 卸载已安装的软件必须加软件名
[root@localhost yum.repos.d]# yum remove
已加载插件:fastestmirror, langpacks
错误:需要为 remove 指定软件包列表[root@localhost yum.repos.d]# yum remove httpd
已加载插件:fastestmirror, langpacks
正在解决依赖关系
--> 正在检查事务
---> 软件包 httpd.x86_64.0.2.4.6-67.el7.centos 将被 删除
--> 解决依赖关系完成
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock error was
14: curl#6 - "Could not resolve host: mirrorlist.centos.org; 未知的错误"
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=extras&infra=stock error was
14: curl#6 - "Could not resolve host: mirrorlist.centos.org; 未知的错误"
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=updates&infra=stock error was
14: curl#6 - "Could not resolve host: mirrorlist.centos.org; 未知的错误"依赖关系解决
=================================================================================
Package 架构 版本 源 大小
=================================================================================
正在删除:
httpd x86_64 2.4.6-67.el7.centos @abc 9.4 M事务概要
=================================================================================
移除 1 软件包安装大小:9.4 M
是否继续?[y/N]:y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在删除 : httpd-2.4.6-67.el7.centos.x86_64 1/1
验证中 : httpd-2.4.6-67.el7.centos.x86_64 1/1删除:
httpd.x86_64 0:2.4.6-67.el7.centos完毕!
tools 的版本要和你的 主软件的版本 相匹配
httpd-2.4.6-97.el7.centos.4.x86_64.rpm
httpd-tools-2.4.6-97.el7.centos.4.x86_64.rpm一个版本高了
一个版本低了
也不行
rpm装一个 卸不干净yum 就装不上了
软件仓库的提供方式
FTP服务:ftp://ip地址/站点里路径
HTTP服务:http://域名或者ip地址/站点里的路径
本地目录:file://绝对路径 (file:///mnt 此处第三个/为根目录)
1.首先将光驱中的镜像文件进行挂载(先将虚拟机的光盘载入)
先在服务端
systemctl stop firewalld
setenforce 0yum install httpd -y
cd /var/www/html
mkdir centos7
mount /dev/sr0 centos7/
systemctl start httpd
客户端
cd /etc/yum.repos.d
mkdir bak
mv *.repo bak/
vim http.repo
[http]
name=http
baseurl=http://192.168.91.100/centos7
gpgcheck=0yum clean all
yum makecacheyum install dhcp
服务端
setenforce 0
systemctl stop firewalld
yum install vsftpd -y
cd /var/ftp/
ls
mkdir centos7
mount /dev/sr0 centos7/
systemctl start vsftpd
客户端
setenforce 0
systemctl stop firewalld
yum install ftp
ftp 192.168.91.100 // 去测试cd /etc/yum.repos.d
mkdir bak
mv *.repo bak/
vim http.repo
[ftp]
name=ftp
baseurl=ftp://192.168.91.100/centos7
gpgcheck=0
[root@localhost ~]# mount /dev/sr0 /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
[root@localhost ~]# df -Th //查看下挂载
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 37G 7.5G 30G 21% /
devtmpfs devtmpfs 977M 0 977M 0% /dev
tmpfs tmpfs 993M 0 993M 0% /dev/shm
tmpfs tmpfs 993M 9.1M 984M 1% /run
tmpfs tmpfs 993M 0 993M 0% /sys/fs/cgroup
/dev/sda1 xfs 1014M 161M 854M 16% /boot
tmpfs tmpfs 199M 4.0K 199M 1% /run/user/42
tmpfs tmpfs 199M 52K 199M 1% /run/user/0
/dev/sr0 iso9660 4.3G 4.3G 0 100% /mnt 。。。。。。。。。。。。。。。。。。。。。。。。。。 已挂载上来了
2. 切换到 yum.repo.d 目录 将自带的仓库移走,多个开启仓库文件可能会造成冲突无法使用
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# mkdir bak
[root@localhost yum.repos.d]# mv *.repo bak/
[root@localhost yum.repos.d]# ls
bak
3.新建yum仓库文件
[root@localhost yum.repos.d]# vim abc.repo
[abc]
name=abc
baseurl=file:///mnt
enabled=1
gpgcheck=0
#gpgkey=file:etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 //若gpgcheck=1
4. yum list 检查仓库 无报错信息即可正常使用。
#/data/目录如果不存在,会自动创建
[root@localhost ]#yum -y install --downloadonly --downloaddir=/data/bind bind
# 只下载 指定下载目录(如不存在会新建) 软件名
服务端:
systemctl stop firewalld
seteforce 0
yum install vsftpd
systemctl start vsftpd
mkdir /var/ftp/centos7
mount /dev/sr0 /var/ftp/centos7
客户端
systemctl stop firewalld
seteforce 0
cd /etc/yum.repos.d
mkdir bak
mv *.repo bak
vim ftp.repo
[ftp]
name=ftp
baseurl=ftp://192.168.91.100/centos7
gpgcheck=0
yum clean all
yum makecache
yum install tree -y
服务端:
systemctl stop firewalld
seteforce 0
yum install httpd
systemctl stop nginx
systemctl start httpd
cd /var/www/html
mkdir centos7
mount /dev/sr0 /var/www/html/centos7
客户端
systemctl stop firewalld
seteforce 0
cd /etc/yum.repos.d
mkdir bak
mv *.repo bak
vim httpd.repo
[httpd]
name=httpd
baseurl=http://192.168.91.100/centos7
gpgcheck=0
yum clean all
yum makecache
yum install tree -y