记一次线上更换系统:涉及到java7 rpm deb 32位 64位

由于目标程序依赖java7,但是java7版本官方未维护了,且大多数源中都不提供7版本的了

众所周知,java7安装需要非常多的依赖,ubuntu22.04安装非常麻烦,搞了半天最终还是放弃了。

然而,目标程序只有openfire-3.10.3-1.i386.rpm集成了java7可以直接使用,但是ubuntu中无法安装32位的rpm程序。

错误:the package cannot be built on this system

由于目标程序只提供了 openfire-3.10.3-1.i386.rpm 没有提供deb程序,所以先尝试使用alien命令将rpm转化为deb程序

# alien可以将rpm与deb相互转化
sudo apt install alien 
# 注意这里转化为amd架构64位
sudo alien --to-deb ./xxxx.rpm --target=amd64 
# 安装deb
sudo dpkg -i xxxx.deb

错误:/opt/xxxx/bin/java: No such file or directory

文件确实存在,有执行权限,但是还是提示文件不存在。
经查看java是32位程序,但是系统是64位的,那么就需要在系统中安装32位的环境

# Ubuntu22.04
sudo apt update
sudo dpkg --add-architecture i386
dpkg --print-foreign-architectures
sudo apt-get install libc6-dev-i386

# Centos7.9
yum -y install glibc-devel.i686

此处评论已关闭