yum仓库

发布时间:2024年01月15日

一、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

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

文章来源:https://blog.csdn.net/mikechen1/article/details/135604598
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。