yum制作离线安装
1、将rpm包放入新建目录yum-local-mount下
2、repo文件bak,去除网络源
3、清除yum缓存【注意这个】
4、进入rpm的存在目录yum-local-mount
5、重新生成repodata 或者更新repodata
6、验证是否成功
1、准备rpm
[root@local yum.repos.d]#
[root@local yum.repos.d]# cd /
[root@local /]# mkdir yum-local-mount
[root@local /]# cd yum-local-mount/
[root@local yum-local-mount]# cp /mnt/Packages/mtr-0.85-7.el7.x86_64.rpm ./
[root@local yum-local-mount]# ll
总用量 72
-rw-rw-r-- 1 root root 72304 5月 18 11:10 mtr-0.85-7.el7.x86_64.rpm
[root@local yum-local-mount]# createrepo ./
Spawning worker 0 with 1 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
[root@local yum-local-mount]# ll
总用量 76
-rw-rw-r-- 1 root root 72304 5月 18 11:10 mtr-0.85-7.el7.x86_64.rpm
drwxr-xr-x 2 root root 4096 5月 18 11:11 repodata
2、指定本源repo
[root@local ~]#
[root@local ~]# cd /etc/yum.repos.d/
[root@local yum.repos.d]# ll
总用量 20
drwxr-xr-x 2 root root 181 3月 28 14:30 bak
-rw-r--r-- 1 root root 2127 4月 26 09:51 CentOS-Base.repo.bak
-rw-r--r-- 1 root root 998 12月 11 2018 CentOS-SCLo-scl.repo
-rw-r--r-- 1 root root 971 10月 29 2018 CentOS-SCLo-scl-rh.repo
-rw-r--r-- 1 root root 664 8月 4 2022 epel.repo
-rw-r--r-- 1 root root 1661 5月 5 09:48 QingHuaYuan.repo
[root@local yum.repos.d]#
[root@local yum.repos.d]# mkdir aaa
[root@local yum.repos.d]# mv C* epel.repo QingHuaYuan.repo aaa
[root@local yum.repos.d]# ll
总用量 0
drwxr-xr-x 2 root root 134 5月 18 11:09 aaa
drwxr-xr-x 2 root root 181 3月 28 14:30 bak
[root@local yum.repos.d]#
[root@local yum.repos.d]# vim /etc/yum.repos.d/yum-local.repo
[root@local yum.repos.d]# cat /etc/yum.repos.d/yum-local.repo
[yum-local]
name=yum-local
baseurl=file:///yum-local-mount/
gpgcheck=0
enabled=1
###清除以前yum缓存
[root@local yum-local-mount]# yum clean all
已加载插件:fastestmirror
正在清理软件源: yum-local
Cleaning up everything
Maybe you want: rm -rf /var/cache/yum, to also free up space taken by orphaned data from disabled or removed repos
Cleaning up list of fastest mirrors
[root@local yum-local-mount]# echo $?
0
###查看repo源的列表
[root@local yum-local-mount]# yum repolist
已加载插件:fastestmirror
Determining fastest mirrors
yum-local | 2.9 kB 00:00:00
yum-local/primary_db | 2.1 kB 00:00:00
源标识 源名称 状态
yum-local yum-local 1
repolist: 1
###查看主机是否有mtr,有则卸载
[root@local yum-local-mount]# rpm -qa |grep mtr
mtr-0.85-7.el7.x86_64
[root@local yum-local-mount]# yum -y remove mtr
已加载插件:fastestmirror
正在解决依赖关系
--> 正在检查事务
---> 软件包 mtr.x86_64.2.0.85-7.el7 将被 删除
--> 解决依赖关系完成
依赖关系解决
===========================================================================================================================================================================
Package 架构 版本 源 大小
===========================================================================================================================================================================
正在删除:
mtr x86_64 2:0.85-7.el7 @base 128 k
(可以看见这是以前的base源下载的mtr)
事务概要
===========================================================================================================================================================================
移除 1 软件包
安装大小:128 k
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在删除 : 2:mtr-0.85-7.el7.x86_64 1/1
验证中 : 2:mtr-0.85-7.el7.x86_64 1/1
删除:
mtr.x86_64 2:0.85-7.el7
完毕!
###重新安装mtr
[root@local yum-local-mount]# yum -y install mtr
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 mtr.x86_64.2.0.85-7.el7 将被 安装
--> 解决依赖关系完成
依赖关系解决
===========================================================================================================================================================================
Package 架构 版本 源 大小
===========================================================================================================================================================================
正在安装:
mtr x86_64 2:0.85-7.el7 yum-local 71 k
(自己的yum源安装mtr)
事务概要
===========================================================================================================================================================================
安装 1 软件包
总下载量:71 k
安装大小:128 k
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安装 : 2:mtr-0.85-7.el7.x86_64 1/1
验证中 : 2:mtr-0.85-7.el7.x86_64 1/1
已安装:
mtr.x86_64 2:0.85-7.el7
完毕!
[root@local yum-local-mount]#
更新yum源的rpm包
[root@local ~]# cd /yum-local-mount/repodata/
[root@local repodata]# cd ..
[root@local yum-local-mount]#
[root@local yum-local-mount]# ll
总用量 76
-rw-rw-r-- 1 root root 72304 5月 18 11:10 mtr-0.85-7.el7.x86_64.rpm
drwxr-xr-x 2 root root 4096 5月 18 11:11 repodata
###将ISD镜像里面的rpm包复制一份过来到此目录下
[root@local yum-local-mount]# cp /mnt/Packages/* ./
cp:是否覆盖"./mtr-0.85-7.el7.x86_64.rpm"? n # 这个是刚才测试用的mtr,yes、no都可
###查看repo的列表,依旧只有一个,说明yum不会自动更新
[root@local yum-local-mount]# yum repolist
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
源标识 源名称 状态
yum-local yum-local 1
repolist: 1
###清除缓存再次查看,依旧不会自动更新yum源
[root@local yum-local-mount]# yum clean all
已加载插件:fastestmirror
正在清理软件源: yum-local
Cleaning up everything
Maybe you want: rm -rf /var/cache/yum, to also free up space taken by orphaned data from disabled or removed repos
Cleaning up list of fastest mirrors
[root@local yum-local-mount]# yum repolist
已加载插件:fastestmirror
Determining fastest mirrors
yum-local | 2.9 kB 00:00:00
yum-local/primary_db | 2.1 kB 00:00:00
源标识 源名称 状态
yum-local yum-local 1
repolist: 1
###删除原有的repodata,使用createrepo重新生成,可以选择使用更新yum源,注意使用清除yum缓存
[root@local yum-local-mount]# rm -rf repodata/
[root@local yum-local-mount]# createrepo ./
Spawning worker 0 with 3971 pkgs
Workers Finished
Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete
###这里可以看到依旧repolist依旧是一个,这里必须要刷新下缓存
[root@local yum-local-mount]# yum repolist
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
源标识 源名称 状态
yum-local yum-local 1
repolist: 1
[root@local yum-local-mount]# yum clean all
已加载插件:fastestmirror
正在清理软件源: yum-local
Cleaning up everything
Maybe you want: rm -rf /var/cache/yum, to also free up space taken by orphaned data from disabled or removed repos
Cleaning up list of fastest mirrors
[root@local yum-local-mount]#
### 刷新缓存之后久变为3971了
[root@local yum-local-mount]# yum repolist
已加载插件:fastestmirror
Determining fastest mirrors
yum-local | 2.9 kB 00:00:00
yum-local/primary_db | 3.1 MB 00:00:00
源标识 源名称 状态
yum-local yum-local 3,971
repolist: 3,971
[root@local yum-local-mount]#
###安装软件测试,可以看到是自己的离线源安装
[root@local ~]# yum -y install bc
已加载插件:fastestmirror
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 bc.x86_64.0.1.06.95-13.el7 将被 安装
--> 解决依赖关系完成
依赖关系解决
===========================================================================================================================================================================
Package 架构 版本 源 大小
===========================================================================================================================================================================
正在安装:
bc x86_64 1.06.95-13.el7 yum-local 115 k
(可以看到是自己的离线源)
事务概要
===========================================================================================================================================================================
安装 1 软件包
总下载量:115 k
安装大小:215 k
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安装 : bc-1.06.95-13.el7.x86_64 1/1
验证中 : bc-1.06.95-13.el7.x86_64 1/1
已安装:
bc.x86_64 0:1.06.95-13.el7
完毕!
总结:
新增rpm包时:
1、需要先清除yum缓存yum clean all
2、而后使用createrepo --update ./
进行更新yum源
3、最后查看yum repolist
或者:
删除repodata目录,重新生成repodata目录createrepo ./
清除yum缓存yum clean all
谨记,清除yum缓存很重要,否则无法更新repolist