? ? ? ?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