一、yum仓库
1.1 yum简介
yum 是一种基于 RPM 软件包(Red-Hat Package Manager 的缩写)的软件更新机制,可自动解决软件包之间的依赖关系。这就解决了日常工作中花费大量时间寻找安装包的问题。 为什么会出现依赖 linux 本身就有简化系统的优势,因为在安装操作系统时,你并没有为安装软件编译所有的库和包 在安装操作系统时,会显示软件包依赖关系。 通过存储库和客户端,yum 可以安装在两台机器上,因为 yum 可以存储在两台机器上,即整个 yum 由两部分组成,所以 yum 可以安装在两台机器上。因此,yum 可以存储在两台服务器上。它也可以托管在一台服务器上。它可以由官方服务提供,也可以由第三方(如国内的阿里云或搜狐云)或非营利组织(如学校)提供。官方来源通常是国外的,下载速度肯定有限,手动换成国内云可以大大提高下载速度。
1.2 如何实现安装
首先客户端发送下载软件请求,会根据文件配置找到仓库位置,然后从服务端下载元信息,客户端会根据元信息找到软件的具体位置,最后从服务端下载到客户端。
二、yum配置文件及使用命令
2.1 主配置文件
文件位置:/etc/yum.conf //主配置文件
[main]
cachedir=/var/cache/yum/$basearch/$releasever //yum下载的RPM包的缓存目录 $basearch表示系统架构 $releasever表示系统版本
keepcache=0 //是否保留缓存,0代表不保存1代表保存
debuglevel=2 //调试级别
logfile=/var/log/yum.log //日志文件位置
exactarch=1 //是否允许不同版本的RPM包安装
obsoletes=1 //是否允许旧版本运行
gpgcheck=1 //验证密钥
plugins=1 //是否允许插件
installonly_limit=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
2.2 日志文件
文件位置:/var/log/yum.log
2.3 仓库设置文件
位置:/etc/yum.repos.d
2.4 yum命令
命令 | 解释 |
yum list | 显示所有可用包,包名支持通配符 |
yum info | 显示包的信息 |
yum search ftp | 模糊查找,查找包含"ftp"字符的所有安装包 |
yum provides ftp | 精确查找,查找这个命令来自哪个包 |
yum history | 查看yum的所有操作 |
yum history undo | 反悔卸载已经安装的软件(配合序号使用) |
yum history redo | 重新执行安装软件步骤(配合序号使用) |
2.4.1 查询
yum list (软件名)
yum search (关键字)
yum info (软件名)
yum provides (关键字)
2.4.2 安装与升级
yum -y install (软件名)
2.4.3 卸载
yum remove (软件名) 卸载已安装的软件必须加软件名
yum history
yum history redo 5
三、搭建yum仓库
3.1 搭建本地yum仓库
第一步:关闭防火墙 核心防护,挂载光盘
systemctl stop firewalld
setenforce 0
mount /dev/sr0 /mnt
第二步:切换到主配置文件夹,创建一个备份文件夹,把官方源移动到备份文件夹中
cd /etc/yum.repos.d
mkdir bak
mv *.repo bak
第三步:创建一个本地仓库文件
vim local.repo
第四步:清理缓存和建立元数据
yum clean all && yum makecache
3.2 搭建网络源仓库(阿里 华为 腾讯 清华源等)
和搭建本地源一样的步骤
systemctl stop firewalld
setenforce 0
mount /dev/sr0 /mnt
cd /etc/yum.repos.d
mkdir bak
mv *.repo bak
vim wangluo.repo
yum clean all && yum makecache
3.3 ftp方式搭建云仓库
第一步:服务端安装vstfp服务
服务端
yum -y install vsftpd
systemctl start vstfpd
mkdir kunkun
mount /dev/sr0 /var/ftp/kunkun
第二步:服务端切换到 ftp目录下新建一个kunkun目录
客户端
systemctl stop firewalld
setenforce 0
cd /etc/yum.repos.d
mkdir bak
mv *.repo bak
vim ftp.repo
yum clean all && yum makecache
3.4 http方式搭载云仓库
服务端
systemctl stop firewalld
setenforce 0
yum -y install httpd
systemctl start httpd
mount /dev/sr0 /var/www/html
客户端
systemctl stop firewalld
setenforce 0
cd /etc/yum.repos.d
mkdir bak
mv *.repo bak
vim http.repo
yum clean all && yum makecache
3.5 自建元信息
mount /dev/sr0 /mnt
mkdir /data
mkdir /data/test
mkdir /data/test/packages
mv /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm /data/test
cd /data/test
mv /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm packages
cd ..
createrepo -v test
cd /etc/yum.repos.d
mkdir bak
mv *.repo bak
vim tree.repo
yum clean all
yum makecache
yum install tree -y
卸载之前安装的软件
重新安装
3.6 升级内核
yum install https://www.elrepo.org/elrepo-release-7.0-4.el7.elrepo.noarch.rpm
//生成仓库文件
//内核库默认关闭打开就可以了
yum repolist all
vim elrepo.repo
yum list *kernel*
yum install kernel-lt.x86_64 -y
重启就可以选择内核
3.7 离线安装软件
思路:先在一台可以联网的主机下载软件依赖包放在指定目录,打包,在无网环境想要安装只需解包安装相应的包即可
mkdir /data
yum install nginx --downloadonly --downloaddir=/data/
--downloadonly #只下载相关包默认至某一目录
--downloaddir=绝对目录路径 #下载到某一目录
cd /data
ls
cd /etc/yum.repos.d
mkdir bak
mv *.repo bak
cd /data
yum -y install nginx(安装肯定失败,根据提示安装对应依赖包再尝试)
去创建的目录查看(不是最小化安装会少包,我这里就是)
安装直接用yum装就行
总结:
1. 学会部署yum仓库的方式,可以进行不同场景的运用
2. 本地yum源和在线源可以安装在同一个repo文件中,设置好优先级,就可以正常使用