yum仓库

一、yum简介

       yum是一个基于RPM包(是Red-Hat Package Manager红帽软件包管理器的缩写)构建的软件更新机制,能够自动解决软件包之间的依赖关系。在客户机中只 要正确指定软件仓库的地址等信息,就可以通过对应的“源”服务器来安装或更新软件。

1.1 yum实现过程

       先在yum服务器上创建 yum repository(仓库),在仓库中事先存储了众多rpm包,以及包的相关的元数据文件(放置于特定目录repodata下),当yum客户端利用yum/dnf工具进行安装时包时,会自动下载repodata中的元数据,查询远数据是否存在相关的包及依赖关系,自动从仓库中找到相关包下载并安装。

yum需要依赖于环境,依赖于服务端和客户端,允许跨网络

服务器:

  • RPM包 (Packages文件夹中)

  • 元数据(repodata文件夹:目录(软件的目录),软件的依赖关系,软件的位置)

客户端的配置文件中

baseurl=地址 一定要写到到 这两个文件夹 repodata packages 的上级目录

二、yum配置文件及命令

2.1 yum配置文件

位置:/etc/yum.conf  主配置文件 

位置:/etc/yum.repos.d/*.repo  yum仓库文件位置

位置:/var/log/yum.log   日志文件

2.2 软件卸载

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  就装不上了
 

2.3 搭建yum仓库

软件仓库的提供方式

FTP服务:ftp://ip地址/站点里路径

HTTP服务:http://域名或者ip地址/站点里的路径

本地目录:file://绝对路径 (file:///mnt 此处第三个/为根目录)

2.3.1 搭建本地yum仓库

1.首先将光驱中的镜像文件进行挂载(先将虚拟机的光盘载入)

先在服务端
systemctl stop firewalld
setenforce 0

yum  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=0

yum clean all
yum makecache

yum 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
#                                  只下载            指定下载目录(如不存在会新建)  软件名

2.4 实操 通过ftp服务搭建 内网yum仓库服务器

服务端:
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

yum仓库_第1张图片

yum仓库_第2张图片

yum仓库_第3张图片

yum仓库_第4张图片

yum仓库_第5张图片

2.5 实操 通过httpd服务搭建 内网yum仓库服务器

服务端:
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

yum仓库_第6张图片

yum仓库_第7张图片

yum仓库_第8张图片

你可能感兴趣的:(linux,服务器,运维)