为什么我不能安装两个架构版本的 libi2c-dev?

为什么我不能安装两个架构版本的 libi2c-dev?

我在 64 位 ARM 架构上运行 Ubuntu 20.04。

我正在尝试构建一些链接libi2c(-li2c) 的代码。但是我希望能够同时构建本地架构和交叉编译(在本例中)armhf。我遇到的问题是,当我尝试安装库的外部架构版本时,apt 想要删除本地版本(反之亦然)。

$sudo apt install libi2c-dev:armhf --no-install-recommends

Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
  i2c-tools libc6-dev:armhf libcrypt-dev:armhf libusb-0.1-4:armhf linux-libc-dev:armhf read-edid
Use 'sudo apt autoremove' to remove them.
Recommended packages:
  i2c-tools:armhf
The following packages will be REMOVED:
  libi2c-dev
The following NEW packages will be installed:
  libi2c-dev:armhf
0 upgraded, 1 newly installed, 1 to remove and 0 not upgraded.
Need to get 7244 B of archives.
After this operation, 2048 B disk space will be freed.
Do you want to continue? [Y/n] n
Abort.

答案1

它应该被报告为错误。据我所知,目前最好的选择是将依赖于架构和不依赖于架构的标头、库和 dev 可执行文件拆分到不同的包中。

  • arch-independent 将包含在所有架构的同一个包中
  • 依赖于架构,每个架构都有自己的软件包,这些软件包至少可以在架构之间以相同的版本共同安装。使用安装路径三元组。

查看更多多架构十字架

作为解决方法,您可以

  1. 安装一个架构(本机优先)
  2. 手动提取其他架构

答案2

我是一名系统管理员,而不是开发人员,因此我不清楚在同一台主机上执行多架构库的理由。从系统广告的角度来看,我只会使用单独的虚拟机。您可能想尝试debians 多架构设置在这里。本质上需要创建一个模拟层。

相关内容