Ubuntu ARM 上是否有针对 x86 软件的转换层?

Ubuntu ARM 上是否有针对 x86 软件的转换层?

我最近在虚拟机上(使用 Parallels)在我的 M1 MacBook Air 上安装了 Ubuntu ARM,与 Windows ARM 和 macOS ARM 不同,Ubuntu ARM 似乎不包含 x86 应用程序的转换层,这使得系统几乎无法使用,因为很多 Linux 软件尚不支持 ARM。

例如,我在尝试使用 Gdebi 安装 VSCode 时收到此错误:

截屏

我无法相信 Linux ARM 上还没有翻译层,考虑到它是一个开源操作系统,这通常使得开发这类东西比在其他操作系统上更容易、更快。

是否有我可以安装的翻译层?

答案1

Box86和 Box64 是可用于在 ARM 中运行传统 x86 应用程序的模拟器。

以下是如何安装 Box64,以便您能够运行amd64二进制文件arm64(请注意,您无法通过这种方式安装 amd64 .deb 文件。.deb 文件不是这样设计的。但是,您仍然可以从 .deb 文件中提取二进制文件并运行它。)。这些说明基于本指南

首先,安装git必要的编译器,用git下载源码,并进入源码目录。

sudo apt install git build-essential cmake
git clone https://github.com/ptitSeb/box64.git
cd ~/box64

现在创建一个名为build的目录,并makefile使用cmake生成。

mkdir build
cd build
cmake .. -DRPI4ARM64=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo

现在使用所有可用的核心进行编译。

make -j$(nproc)

现在安装编译好的软件

sudo make install

现在重新启动systemd-binfmt服务。

sudo systemctl restart systemd-binfmt

最后,重新启动计算机。

现在,您应该能够运行针对该amd64架构编译的二进制文件。


不过,arm64VSCode 的原生版本在其官方网站,你不需要模仿它。


许多 Linux 软件尚不支持 ARM……

你似乎被误导了。由于存储库中的大多数软件都是免费和开源的,因此它们已经编译完毕,可以随时用于 ARM。根据https://debian.pkgs.org/arm64Debian Sid 的存储库有 62542 个软件包,而amd64存储库有 63568 个软件包(截至 2021 年 11 月 18 日)。人们通常使用 box64 来模拟为 Windows 创建的专有软件。

答案2

Qemu 用户模拟提供了一种非常好的方式来无缝运行来自其他架构的程序。不过,我没有使用图形程序的实际经验,所以这方面可能有点问题。

它还通过注册外部架构与 apt/dpkg 集成。

答案3

我在 Ubuntu Server 上遇到了同样的问题,并收到以下错误:

-bash: /usr/bin/my-script: cannot execute binary file: Exec format error

我找到了在 arm CPU 上运行 x86-64 文件的通用解决方案。运行以下代码可修复此问题:

sudo apt update
sudo apt install -y qemu-user-static binfmt-support
sudo dpkg --add-architecture amd64
sudo apt update
sudo apt install libc6:amd64

来源 :https://www.kali.org/docs/arm/x86-on-arm/

相关内容