暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

yum如何开启安装缓存--解决内网环境软件安装缺少依赖包的问题

请叫我水哥 2020-08-27
1686

        一、背景需求

        二、方法一:修改配置文件的方式


        三、方法二:直接命令行的方式(推荐)


一、背景需求

经常在内网环境中要求安装软件,会缺少各种相关软件的依赖包,且内网配置的镜像源缺少依赖包的情况经常发生(基本内网的镜像源都是光盘ISO搭建的)。如何将外网yum安装的软件和它对应依赖源拷贝到内网安装呢?这就需要使用yum的安装缓存了。

二、方法一:修改配置文件的方式

1. 确定yum安装的缓存目录

cat /etc/yum.conf |grep cachedir
cachedir=/var/cache/yum/$basearch/$releasever
我虚拟机是CentOS7.4 x86_64的,默认缓存路径在/var/cache/yum/x86_64/7/
[root@cs ~]# cd /var/cache/yum/x86_64/7/
[root@cs ~]# ls
aa base extras timedhosts timedhosts.txt updates

2. 默认情况下,yum是不会保留安装包(安装完后自动删除安装包)。

如果需要保留的话,我们可以如下修改

[root@cs ~]#  cat /etc/yum.conf |grep keepcache
keepcache=1 //默认值为0不保留缓存


1)安装一个软件包测试下
[root@haproxy01 ~]# yum -y install rpcbind
已加载插件:fastestmirror
aa | 3.6 kB 00:00:00
base | 3.6 kB 00:00:00
extras | 2.9 kB 00:00:00
updates | 2.9 kB 00:00:00
updates/7/x86_64/primary_db | 4.5 MB 00:00:00
Loading mirror speeds from cached hostfile
正在解决依赖关系
--> 正在检查事务
---> 软件包 rpcbind.x86_64.0.0.2.0-49.el7 将被 安装
--> 正在处理依赖关系 libtirpc >= 0.2.4-0.7,它被软件包 rpcbind-0.2.0-49.el7.x86_64 需要
--> 正在处理依赖关系 libtirpc.so.1()(64bit),它被软件包 rpcbind-0.2.0-49.el7.x86_64 需要
--> 正在检查事务
---> 软件包 libtirpc.x86_64.0.0.2.4-0.16.el7 将被 安装
--> 解决依赖关系完成
依赖关系解决
===============================================================================================================================
Package 架构 版本 源 大小
===============================================================================================================================
正在安装:
rpcbind x86_64 0.2.0-49.el7 base 60 k
为依赖而安装:
libtirpc x86_64 0.2.4-0.16.el7 base 89 k
事务概要
===============================================================================================================================
安装 1 软件包 (+1 依赖软件包)
总下载量:149 k
安装大小:284 k
Downloading packages:
(1/2): rpcbind-0.2.0-49.el7.x86_64.rpm | 60 kB 00:00:00
(2/2): libtirpc-0.2.4-0.16.el7.x86_64.rpm | 89 kB 00:00:00
-------------------------------------------------------------------------------------------------------------------------------
总计 234 kB/s | 149 kB 00:00:00
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
正在安装 : libtirpc-0.2.4-0.16.el7.x86_64 1/2
正在安装 : rpcbind-0.2.0-49.el7.x86_64 2/2
验证中 : libtirpc-0.2.4-0.16.el7.x86_64 1/2
验证中 : rpcbind-0.2.0-49.el7.x86_64 2/2


已安装:
rpcbind.x86_64 0:0.2.0-49.el7


作为依赖被安装:
libtirpc.x86_64 0:0.2.4-0.16.el7


完毕!


2)可以看到安装的包来自源base,所以我们要到base源这个目录里面去查询
[root@cs packages]# pwd
/var/cache/yum/x86_64/7/base/packages
[root@cs packages]# ls
libtirpc-0.2.4-0.16.el7.x86_64.rpm rpcbind-0.2.0-49.el7.x86_64.rpm


3)拷贝这个包到其他内网主机安装即可
[root@ha ~]#yum localinstall -y *.rpm

三、方法二:直接命令行的方式,推荐

第二种方法不用修改配置文件,方便快捷。且不用把软件安装一次再缓存。

//举例下载vsftp
[root@cs ~]# yum install --downloadonly --downloaddir /tmp/vsftp vsftpd
说明:
--downloadonly 仅下载而不安装
--downloaddir=DLDIR 指定一个其他文件夹用于保存软件包
[root@cs ~]# ls /tmp/vsftp
vsftpd-3.0.2-27.el7.x86_64.rpm


将包拷贝到内网,执行本地安装即可
[root@ha ~]#yum localinstall -y *.rpm


文章转载自请叫我水哥,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论