问题:

公司虚拟机仅使用内网无法通过yum下载依赖

解决方法之一就是从一台连了公网的虚拟机(NAT) 下载需要的rpm包,然后拷贝到公司的虚拟机中去安装;

解决:

使用一台连接了公网的虚拟机(可以自己用笔记本转一个Linux系统),用此虚拟机下载rpm包,然后拷贝到只有内网的虚拟机上!
而由于yum install安装完之后会自动清理安装包,如果只想通过yum下载软件的安装包,但是不需要进行安装的话,这里使用 yumdownloader 命令。

1. 安装yum-utils

yumdownloader 命令在软件包 yum-utils 里面。先安装 yum-utils :

yum install yum-utils -y

查看 yum-utils 软件包有没有 yumdownloader,如果有输出代表可用:

rpm -ql yum-utils |grep yumdownloader

即当前虚拟机已经有yumdownloader了;
在这里插入图片描述

2. 下载rpm包

比如只想下载java-1.8.0-openjdk,但是不安装,可以执行如下指令:

yumdownloader java-1.8.0-openjdk.x86_64

在这里插入图片描述

单纯的使用yumdownloader 只会下载给定名称的既定RPM包,安装时候所需要的一些依赖不会被下载。如果要下载依赖加上"–resolve"参数,如果要指定下载目录。加上"–destdir"参数;

yumdownloader java-1.8.0-openjdk.x86_64 --resolve --destdir=/opt/java/

3. 将rpm包拷贝到离线的虚拟机并安装

将以上下载的rpm包传到离线的虚拟机,找到包进行安装:

rpm -ivh  *.rpm --nodeps

--nodeps就是安装时不检查依赖关系,比如你这个rpm需要A,但是你没装A,这样你的包就装不上,用了–nodeps你就能装上了

--force就是强制安装,比如你装过这个rpm的版本1,如果你想装这个rpm的版本2,就需要用–force强制安装

查看是否安装成功:

rpm -q xorg-x11-xauth 

在这里插入图片描述
安装成功。

遇到的问题:

1. error while loading shared libraries: libXXX.so.X: cannot open shared object file: No such file

原因是虽然安装了rpm包,但是安装的动态链接库目录并没有被系统加载到,需要手动去配置动态链接库的地址;

动态链接库目录一般在:/lib/usr/lib
目录中是一些动态链接文件:
在这里插入图片描述

需要将这两个目录添加到动态链接库的配置文件让其被系统加载到, 需要在 /etc/ld.so.conf 中加路径:

vim /etc/ld.so.conf

在这里插入图片描述
此时下载的rpm包就会被加载到了;

2. wrong ELF class: ELFCLASS32

装rpm包时装成了 i686结尾的,这是32位用的,换成 x86_64结尾的即可;

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐