在我的树莓派4上,为了发挥出64位CPU的性能,我安装了Ubuntu Server 20.04 64-bit for Raspberry Pi替代树莓派原生的32位系统。但是,一些为树莓派原生的32位系统开发的软件也就用不了,尤其是对于像我这样懒得手动编译,每次手动编译还各种玄学翻车的人。可以通过如下的命令依次查看当前系统架构和支持的其它架构验证这一点:
dpkg --print-architecture; dpkg --print-foreign-architectures
但是,64位的CPU大多是兼容32位的指令,不能运行32位的程序只是因为缺少32位软件的运行环境。为此,我们可以通过如下命令添加dpkg工具对其支持:
dpkg --add-architecture armhf
这样,如果您知道软件所需要的依赖环境,我们就可以使用apt命令,来安装相关的环境。当然,别忘了在安装前需要使用apt update
命令来更新源。
当然,如果有一天,我们不再需要32位环境的支持的时候,我们就可以使用如下命令删除dpkg对32位软件的支持:
dpkg --remove-architecture armhf
如果您不清楚,可以通过如下命令导出系统中已经安装的一些内容含有“lib”的系统预装安装的的包,也许会对您有帮助。请注意,一些新包的安装可能会对原有包进行破坏,这可能会导致原有程序不能运行或系统崩溃,请仔细斟酌、测试后方可在服务器上使用。本人不承担任何因此造成任何后果的任何责任。
警告!接下来的操作有风险,请备份好重要数据,在实验机上充分测试后使用!
apt list | grep lib | grep installed,automatic > test.txt
在我的Ubuntu Server 20.04上,我自己使用的安装命令是这个样子的:
apt update
apt install glib-networking:armhf libc6:armhf libncurses6:armhf libpam-systemd:armhf libssl1.1:armhf libstdc++6:armhf