Ubuntu ARM 上有 x86 软件的翻译层吗?

Adr*_*895 10 arm arm64

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

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

截屏

我不敢相信 Linux ARM 上还没有翻译层,因为它是一个开源操作系统,通常比其他操作系统更容易、更快地开发此类东西。

有没有我可以安装的翻译层?

Arc*_*ahi 19

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
Run Code Online (Sandbox Code Playgroud)

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

mkdir build
cd build
cmake .. -DRPI4ARM64=1 -DCMAKE_BUILD_TYPE=RelWithDebInfo
Run Code Online (Sandbox Code Playgroud)

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

make -j$(nproc)
Run Code Online (Sandbox Code Playgroud)

现在安装编译好的软件

sudo make install
Run Code Online (Sandbox Code Playgroud)

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

sudo systemctl restart systemd-binfmt
Run Code Online (Sandbox Code Playgroud)

最后,重新启动计算机。

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


但是,VSCode 的本机构建可在其官方网站arm64上找到,您不需要模拟它。


很多Linux软件还不支持ARM...

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


Pel*_*lle 5

Qemu 用户模拟提供了一种非常好的方法来无缝运行其他架构的程序。然而,我没有图形程序的实际经验,所以可能有这样的龙。

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