提要
yum工具是基于rpm的,其一个重要的特性就是可以自动解决依赖问题。但是yum的本质依旧是把后缀名.rpm的包下载到本地,然后按次序安装之。但是每次执行yum install xxx,会自动安装并且安装完毕后把rpm包自动删除。而且有的yum源速度真的很慢每次都需要重复下载特别麻烦。因此构建本地yum源确实是个不错的选择。
构建mysql的yum源为例
把rpm包及其相关依赖全部都下载到本地,保存好
> cd /opt/package
> wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
> sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm
> sudo yum update
> yum install mysql-community-server --downloadonly --downloaddir=/opt/repo
安装createrepo
> sudo yum install createrepo -y
# 配置本地yum仓库信息
> sudo vi /etc/yum.repos.d/repo.repo
#repo是本地仓库名,可任意起名,但是注意不能与已有的仓库名重复。
[repo]
#name后面是注释信息,随意书写。
name=repo local repository
#baseurl这后面就是填写本地仓库路径了,file://表示使用本地文件协议,后面的/repo本地rpm包存放路径。
baseurl=file:///opt/repo
#gpgcheck=0这是和验证包的安全信息的,最好设置成0,表示关闭安全验证,否则还需要准备安全验证文件,麻烦一堆一堆的。
gpgcheck=0
#表示启用本仓库,0启用,1关闭。
enabled=1
生成repodate信息
> sudo createrepo /opt/repo/
> cd /opt/repo
> ll | grep repodata
repodata【存在表示成功】
检查以及使用
> yum repoinfo repo
Loaded plugins: fastestmirror, langpacks
Determining fastest mirrors
* base: mirrors.ustc.edu.cn
* extras: mirrors.ustc.edu.cn
* updates: mirrors.ustc.edu.cn
repo | 2.9 kB 00:00:00
repo/primary_db | 11 kB 00:00:00
Repo-id : repo
Repo-name : repo local repository
Repo-status : enabled
Repo-revision: 1598346685
Repo-updated : Tue Aug 25 05:11:26 2020
Repo-pkgs : 5
Repo-size : 88 M
Repo-baseurl : file:///opt/repo/
Repo-expire : 21,600 second(s) (last: Tue Aug 25 05:18:22 2020)
Filter : read-only:present
Repo-filename: /etc/yum.repos.d/repo.repo
repolist: 5
> sudo yum clean all
> sudo yum repolist
Loaded plugins: fastestmirror, langpacks
Loading mirror speeds from cached hostfile
* base: mirrors.njupt.edu.cn
* extras: mirrors.163.com
* updates: mirrors.163.com
repo id repo name status
base/7/x86_64 CentOS-7 - Base 10,070
extras/7/x86_64 CentOS-7 - Extras 413
mysql-connectors-community/x86_64 MySQL Connectors Community 165
mysql-tools-community/x86_64 MySQL Tools Community 115
mysql56-community/x86_64 MySQL 5.6 Community Server 547
repo repo local repository 5
updates/7/x86_64 CentOS-7 - Updates 1,112
repolist: 12,427
> sudo yum clean all
> sudo yum makecache
> sudo yum list mysql-community-server
> sudo yum repolist
安装mysql
> sudo yum install mysql-community-server
拓展内容【可选】,我们如何更新repo呢?
#如果repo中下载新的rpm包,如后续我们需要下载clouder manager 相关的rpm包,我们如何更新本地的rpm库呢
cloudera-manager-agent-6.3.1-1466458.el7.x86_64.rpm 2019-10-11 08:42 10.00MB
cloudera-manager-daemons-6.3.1-1466458.el7.x86_64.rpm 2019-10-11 08:42 1.12GB
cloudera-manager-server-6.3.1-1466458.el7.x86_64.rpm 2019-10-11 08:42 11.22KB
cloudera-manager-server-db-2-6.3.1-1466458.el7.x86_64.rpm 2019-10-11 08:42 10.74KB
enterprise-debuginfo-6.3.1-1466458.el7.x86_64.rpm 2019-10-11 08:42 13.55MB
oracle-j2sdk1.8-1.8.0+update181-1.x86_64.rpm 2019-10-11 08:42 176.42MB
#将上述包移动到/opt/repo目录,重新执行步骤生成repodate信息,则可读以上rpm包
> sudo createrepo /opt/repo/
# 刷新yum缓存
> sudo yum clean all
> sudo yum makecache
> sudo yum list clouder*