测试环境
1台centos7.7 1908虚机;
配置nat模式,可上外网,已配置好阿里yum源;
一、安装createrepo
createrepo 命令用于创建yum源(软件仓库),即为存放于本地特定位置的众多rpm包建立索引,描述各包所需依赖信息,并形成元数据。
#默认系统无安装creatrepo软件,因此需要yum进行安装:
[root@hg ~]# rpm -qa|grep createrepo
[root@hg ~]# yum install -y createrepo
[root@hg ~]# rpm -qa|grep createrepo #验证
createrepo-0.9.9-28.el7.noarch
二、保存通过yum安装的相应rpm包?
有如下几种方式:
(1)使用–downloadonly选项(推荐)只下载不安装yum包!
注意,–downloadonly选项是有yum软件包提供的,默认是已经提供的。
- –downloadonly选项用法
用法1:
yum install --downloadonly RPM_Name
#下载的文件位于/var/cache/yum/x86_64/7/目录下,视系统版本而定。
用法2:(推荐)
yum install -y RPM_Name --downloadonly --downloaddir=保存文件目录名
#注意:
这个--downloadonly选项代表只下载不安装相应的rpm包,包括依赖包;
--downloaddir=保存文件目录名:会在当前目录下生成相应目录的;
(1)用法1测试过程(测试成功)
[root@hg ~]# rpm -qa|grep httpd #未安装httpd软件
由于指定了–downloadonly选项,所以httpd软件没有被安装:
下载的rpm包只是缓存到了/var/cache/yum/x86_64/7目录下:
(2)用法2测试过程(已成功测试)–本次采用这种方式!(推荐)
[root@hg ~]# yum install --downloadonly httpd --downloaddir=httpd
(2)使用yumdownloader命令(只下载rpm包不安装)–不推荐!
yum downloader命令依赖于 yum-utils,因此先需要通过yum安装 yum-utils软件包:
[root@hg ~]# yum install -y yum-utils
- 用法
#yum downloader RPM_Name
下载的包位于当前目录下。但是,只下载指定的包,不会把该包依赖的包都下载下来的。
- 测试过程
[root@hg ~]# yumdownloader httpd
(3)yum开启缓存(相对于第一种方式感觉比较笨拙些)
默认情况下,yum安装的rpm包都不会被保存到本地,但可通过设置keepcache参数使其在安装软件包的同时保存rpm包。
[root@hg ~]# vim /etc/yum.conf[main]cachedir=/var/cache/yum/$basearch/$releaseverkeepcache=1 #修改为1表示开启缓存#centos8配置文件路径在/etc/dnf/dnf.confcachedir=/var/cache/dnf/packagekeepcache=1注意:缓存好相关rpm包后可用如下命令将all rpm包拷贝到对应目录,进一步构建自己的yum源仓库:find ./ -name "*.rpm" -exec cp -r {} /opt/php72 \
- 测试过程
[root@hg ~]# vim /etc/yum.conf
[root@hg ~]# rpm -qa|grep httpd[root@hg ~]# yum install httpd -y
三、生成repodata文件
[root@hg httpd]# createrepo ./
四、编辑.repo配置文件
cat >> /etc/yum.repos.d/httpd.repo <<EOF[httpd]name=httpdbaseurl=file:///root/httpdenable=1gpgcheck=0EOF
五、修改完成后使用本地 yum 源快速安装
这里为了测试,需要把阿里云源先注释掉:
[root@hg yum.repos.d]# rpm -qa|grep httpd[root@hg ~]# cd /etc/yum.repos.d/[root@hg yum.repos.d]# lsbackup CentOS-Base.repo httpd.repo[root@hg yum.repos.d]# mv CentOS-Base.repo{,.bak}[root@hg yum.repos.d]# yum install httpd -y
总结
工作及it学习中,养成本地保留一份rpm相关包,是一个很好的习惯,可以防止因某些软件版本更新后,无法找到当时的相应版本软件包,从而影响一些服务大搭建。
好了,今天就介绍到这里了,下期见。