linux64位系统兼容32位程序(不下载兼容包)
64位系统兼容32位系统,正常通过apt指令安装兼容包即可。也就是两条命令的事情:apt-get install gcc-multilibapt-get install g++-multilib安装完后,32位的程序就可以在硬件上跑了。但是现场已经在使用的硬件产品,因为硬件网络是定向网络(IOT定向卡,限定了访问的IP地址,目前无法访问163和交大的源),所以这些设备上无法执行apt指令。当然,可
64位系统兼容32位系统,正常通过apt指令安装兼容包即可。也就是两条命令的事情:
apt-get install gcc-multilib
apt-get install g++-multilib
安装完后,32位的程序就可以在硬件上跑了。但是现场已经在使用的硬件产品,因为硬件网络是定向网络(IOT定向卡,限定了访问的IP地址,目前无法访问163和交大的源),所以这些设备上无法执行apt指令。
当然,可以在公司将需要的deb下载下来,然后升级的时候,目标设备下载下来后,dpkg -i来安装这些包。但是,这两个包,依赖的包非常多,搞起来也不是那么容易的。
剩下还有一种办法,就是取一个设备做测试验证,在这个机器上先安装好环境,然后将安装好的包,直接压缩,然后以升级的方式拷贝到目标机器上,不就可以了吗?
按照这个思路,以x86的硬件为例,安装了兼容包后,机器上会多出来:
1. /lib/i386-linux-gnu
整体打包后,到目标机器上, /lib文件夹下解压缩即可
2. /usr/lib32
整体打包,到目标机器上,/usr目录下,解压缩
3. /lib32
这个是指向/usr/lib32的链接文件夹,所以在/下建立用ln -s建立链接文件夹即可
4. 调试指令ldd
ldd经常用到,如果只做上面1~3步操作,ldd 检查32位程序,还是不行。需要到/lib目录下,建立快捷文件ld-linux.so.2,如下所示:
5. 库的加载路径
库的加载路径,由/etc/ld.so.conf.d下的文件夹决定。安装完兼容包的硬件中,会多出i386-linux-gnu.conf,zz_i386-biarch-compat.conf和zz_x32-biarch-compat.conf,这3个文件。把这3个文件拷贝到目标机。如果要不重启验证,那么执行ldconfig。如果重启,那自动就好用了。
做完上述5个步骤后,我的目标机器,就能跑32位的程序了
更多推荐
所有评论(0)