yum仓库

文章目录


一、yum仓库

简介

yum是一个基于RPM包(是Red-Hat Package Manager红帽软件包管理器的缩写)构建的软件更新机制,能够自动解决软件包之间的依赖关系。解决了日常工作中的大量查找安装依赖包的时间。

为什么会有依赖关系的发生 因为linux本身就是以系统简洁为自身优势,所以在安装操作系统的时候并没有将所有的库文件以及编译软件包进行安装,所以在linux操作系统上进行软件安装的时候会出现软件包依赖的情况。yum由仓库和客户端组成,也就是整个yum由两部分组成,所以yum可以存放在两台服务器上。也可以存放在一台服务器上。可以有官方来提供服务,也可以由第三方来提供,比如国内的阿里云,搜狐云,还有一些非盈利组织比如学校等。官方的源一般在国外,下载速度肯定有限,手动更改成国内的云可以大幅提升下载速度。

yum实现过程

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

服务器:

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

仓库类型:

  • 光盘的仓库基本仓库 比较常用的
  • epel扩展仓库 比较新

yum配置文件

主配置文件

bash 复制代码
[main]
cachedir=/var/cache/yum/$basearch/$releasever //yum下载的RPM包的缓存目录 $basearch代表硬件架构 $releasever系统版本比如7
keepcache=0                                   //是否保存缓存  0代表不保存,1代表保存
debuglevel=2                                  //调试级别了解即可
logfile=/var/log/yum.log					 // 日志文件位置
exactarch=1								     //是否允许不同版本的rpm安装
obsoletes=1									//update 的一个参数是否可以允许旧版本的运行	
gpgcheck=1                                  //验证秘钥
plugins=1                                   //是否允许插件1代表可以
installonly_limit=5                         //保存几个内核 5代表5个
bugtracker_url=http://bugs.centos.org/set_project.php?project_id=23&ref=http://bugs.centos.org/bug_report_page.php?category=yum
distroverpkg=centos-release

yum的repo配置文件中可用的变量:
$releasever: 当前OS的发行版的主版本号,如:8,7,6
$arch: CPU架构,如:aarch64, i586, i686,x86_64等
$basearch:系统基础平台;i386, x86_64
$contentdir:表示目录,比如:centos-8,centos-7
$YUM0-$YUM9:自定义变量

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

yum仓库日志文件:/var/log/yum.log

yum命令

命令 不加关键字 加入关键词、软件包、软件包组
yum list 显示所有可用包 单个的可安装包
yum info 显示所有可用包的信息 单个具体的信息
yum search \ 模糊查找所有的相关信息
yum provides \ 精确查找
yum grouplist 显示所有可用包组 显示具体的包组
yum groupinfo 显示所有的包组具体信息 显示具体的包组的具体信息
yum install \ 安装具体软件包
yum groupinstall \ 安装具体软件包组
yum update 所有软件升级 具体软件升级
yum group update 所有包组升级 具体包组升级
yum remove \ 卸载具体软件
yum groupremove \ 卸载具体包组软件
yum history 查看当前yum操作历史 \
yum history undo 加入序号卸载序号里安装的软件 \
yum history redo 加入序号重新执行序号里的操作 \

命令详解

1.yum list [软件名]

显示可用的安装包,可以支持通配符。

2.yum info [软件名]

显示安装包的详细信息。

  1. yum search <关键词>

根据关键字查找软件安装包,相当于你只知道这个包里的某个关键字会全部给你匹配出来。

4.yum provides <关键词>

知道某个命令却不知道具体的包可以用此命令查找

  1. yum install [软件名]

可以用来安装软件,也可以用来升级软件。

6.yum remove [软件名]

卸载已安装的软件必须加软件名,但不可以卸载因为安装软件时的依赖关系而安装的软件。

7.yum history

查看历史的使用记录,选择ID 1,2,3,4,5。可以使用yum history undo 4 进行卸载,这样对比remove好处是可以将所有的依赖都删除。
yum history info 4,查看第四次具体安装了什么。

如果后悔 卸载 可以使用两种方式:

1.yum history redo 4 (重新安装一遍);

2.yum history undo 6(反悔卸载等于重新安装一遍)。

二、搭建仓库的方式

本地yum仓库,在没有网络的情况下,可以利用光盘单间yum仓库。

软件仓库的提供方式:

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

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

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

搭建本地yum仓库

1.http协议

/var/www/html 存放网页文件的地方
先挂载

客户端设置

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

搭建本地仓库(自己既是服务端优势客户端)

mount /dev/sr0 /mnt

cd /etc/yum.repos.d/

mkdir bak

mv *.repo bak

vim local.repo

[local]

name=local

baseurl=file:///mnt

enabled=1

gpgcheck=0

yum list

rm -rf /var/run/yum.pid

yum list

yum install tree -y

ftp方式搭建云仓库

服务端:192.168.232.10

客户端:192.168.232.20

  • 服务端安装vsftp服务
  • 服务端切换到 ftp目录下新建一个centos7目录
bash 复制代码
cd /var/ftp/
mkdir centos7 other
  • 服务端将光驱里的文件包全部拷到centos7里面
bash 复制代码
[root@localhost ftp]# cp -rf /mnt/* centos7/ &                                //&代表后台运行应为文件较大
[root@localhost ftp]# cd centos7/
[root@localhost centos7]# ls                                                 //已将安装包文件拷入
CentOS_BuildTag  GPL       LiveOS    RPM-GPG-KEY-CentOS-7
EFI              images    Packages  RPM-GPG-KEY-CentOS-Testing-7
EULA             isolinux  repodata  TRANS.TBL
[root@localhost ~]cd /var/ftp/other
[root@localhost other] createrepo -g /mnt/repodata/repomd.xml ./ 
[root@localhost other]# ls
repodata
[root@localhost other]# cd repodata 
createrepo -g /mnt/repodata/repomd.xml ./
建立数据库文件
  • 服务端开启相关服务,关闭防火墙和selinux

  • 客户端安装ftp 服务并启动关闭防火墙和selinux

  • 测试ftp服务是否正常(参照ftp服务器)

  • 编写yum仓库文件

bash 复制代码
vim centos7.repo
[centos7]
name=centos7
baseurl=ftp://192.168.232.10/centos7
enabled=1
gpgcheck=0


[other]
name=other
baseurl=ftp://192.168.232.10/other
enabled=1
gpgcheck=0

-测试是否yum可以正常使用

搭建阿里云仓库

国外yum仓库较慢,可以使用阿里云残酷替代。

bash 复制代码
CentOS系统的yum源
#阿里云
https://mirrors.aliyun.com/centos/$releasever/ 
#腾讯云
https://mirrors.cloud.tencent.com/centos/$releasever/ 
#华为云
https://repo.huaweicloud.com/centos/$releasever/ 
#清华大学
https://mirrors.tuna.tsinghua.edu.cn/centos/$releasever/


EPEL的yum源
#阿里云
https://mirrors.aliyun.com/epel/$releasever/x86_64
#腾讯云
https://mirrors.cloud.tencent.com/epel/$releasever/x86_64
#华为云
https://mirrors.huaweicloud.com/epel/$releasever/x86_64
#清华大学
https://mirrors.tuna.tsinghua.edu.cn/epel/$releasever/x86_64

#更新源
http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/ http://mirrors.aliyuncs.com/centos/$releasever/updates/$basearch/ http://mirrors.cloud.aliyuncs.com/centos/$releasever/updates/$basearch/


baseurl=https://mirrors.aliyun.com/epel/$releasever/x86_64
		https://mirrors.cloud.tencent.com/epel/$releasever/x86_64
		https://mirrors.huaweicloud.com/epel/$releasever/x86_64
		https://mirrors.tuna.tsinghua.edu.cn/epel/$releasever/x86_64

新建阿里云仓库

bash 复制代码
[ali]
name=aliyun
#baseurl=https://mirrors.aliyun.com/centos/7/os/x86_64/                  //开启哪个都可以正常使用,这边主要解释变量的作用
baseurl=https://mirrors.aliyun.com/centos/$releasever/os/$basearch/    //变量参见主配置文件2.1小节
gpgcheck=0

[epel]                                                                //epel源仓库
name=epel
baseurl=https://mirrors.aliyun.com/centos/7/extras/x86_64/
gpgcheck=0

[update]                                                             //更新包仓库
name=update
baseurl=https://mirrors.aliyun.com/centos/7/updates/x86_64/
gpgcheck=0
相关推荐
矛取矛求2 分钟前
Linux系统性能调优技巧
linux
One_Blanks7 分钟前
渗透测试-Linux基础(1)
linux·运维·安全
Perishell7 分钟前
无人机避障——大疆与Airsim中的角速度信息订阅获取
linux·动态规划·无人机
爱吃喵的鲤鱼11 分钟前
linux进程的状态之环境变量
linux·运维·服务器·开发语言·c++
dessler23 分钟前
Linux系统-ubuntu系统安装
linux·运维·云计算
荒Huang1 小时前
Linux挖矿病毒(kswapd0进程使cpu爆满)
linux·运维·服务器
hjjdebug3 小时前
linux 下 signal() 函数的用法,信号类型在哪里定义的?
linux·signal
其乐无涯3 小时前
服务器技术(一)--Linux基础入门
linux·运维·服务器
Diamond技术流3 小时前
从0开始学习Linux——网络配置
linux·运维·网络·学习·安全·centos
斑布斑布3 小时前
【linux学习2】linux基本命令行操作总结
linux·运维·服务器·学习