1.适用情景
公司是内网环境,linux机器无法用yum下载,然后自然想到上传rpm包来解决问题,但上传rpm包会遇到两个问题,一个是不知如何下载rpm包,一个就是包跟包之间的依赖问题,小的程序还好,一般没有依赖,或者依赖很少;但大点的程序,或者需要下载多个程序的时候,依赖包就会很多,还会出现依赖包不兼容的情况,那么就可以采用我的解决办法
2.解决方法
找一台可以接外网的机器,虚出一台干净的虚拟机,用它来获取rpm包跟其依赖。
3.操作步骤(以下载tcpdump为例)
(1)下载rpm包
yum --downloadonly install tcpdump --downloaddir=aa
注:--downloadonly 只下载不安装
--downloaddir 指定下载目录
(2)打包下载的rpm包,可以直接打包aa目录
tar -zcvf aa.tar.gz ./aa
(3)从这台机器上导出至内网服务器,借助工具ftp;rz sz;U盘,看情况适用
(4)解压压缩包,安装rpm包,一键安装目录里所有rpm包的命令如下:
yum -y localinstall ./*.rpm
--localinstall 安装可以将解决依赖过多导致无法正常安装的问题
提示:
1.如果你用的虚拟机不是新机器(以tcpdump为例),并且已经下载了tcpdump,那么执行第一步下载时,指定的下载目录里并不会出现对应的rpm包。
2.如果你下载的软件包里的依赖是你机器上已经存在的依赖,那么他不会再下载,在内网执行时就会出现缺少依赖包的问题。
3.当你在内网的服务器上使用 yum localinstall 的时候可能会出现服务器会尝试连接网络的情况,这是因为,他会默认的先去读取服务器的 repo ,我们只需将服务器的repo包注释掉即可,即给他们改个名字,repo包在 /etc/yum.repo.d中