这里写目录标题
- 问题:
- 解决:
- 1. 安装yum-utils
- 2. 下载rpm包
- 3. 将rpm包拷贝到离线的虚拟机并安装
- 遇到的问题:
- 1. error while loading shared libraries: libXXX.so.X: cannot open shared object file: No such file
- 2. wrong ELF class: ELFCLASS32
问题:
公司虚拟机仅使用内网无法通过yum下载依赖;
解决方法之一就是从一台连了公网的虚拟机(NAT) 下载需要的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 -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结尾的即可;