Ubuntu 20.04:安装 32 位和 64 位库

Ubuntu 20.04:安装 32 位和 64 位库

我的(新手)Ubuntu 20.04 服务器配置了 32 位和 64 位架构:

$ dpkg --print-architecture

amd64

$ dpkg --print-foreign-architectures

i386

但是,我似乎无法同时拥有应用程序所依赖的同一个库的 32 位和 64 位版本。

apt-get install libodbc1:i386
apt-get install libodbc1

当我安装其中一个时,另一个会被删除。当我安装 32 位版本时,需要 64 位版本的应用程序 (Plesk、VS Code) 会中断,而当我安装 64 位版本时,需要 32 位版本的应用程序 (WineHQ) 会中断。

我该如何安装这两个应用程序才能使所有应用程序正常运行?

更新

当我运行以下命令时,我得到以下结果:

$ sudo apt install libodbc1 libodbc1:i386
The following packages have unmet dependencies:
 libodbc1 : Breaks: libodbc1:i386 (!= 2.3.7) but 2.3.6-0.1build1 is to be installed
 libodbc1:i386 : Breaks: libodbc1 (!= 2.3.6-0.1build1) but 2.3.7 is to be installed
E: Unable to correct problems, you have held broken packages.

并且,当我运行以下命令时,我得到以下结果:

$ apt policy libodbc1
libodbc1:
  Installed: 2.3.7
  Candidate: 2.3.7
  Version table:
 *** 2.3.7 500
        500 https://packages.microsoft.com/ubuntu/20.04/prod focal/main amd64 Packages
        100 /var/lib/dpkg/status
     2.3.6-0.1build1 500
        500 http://archive.ubuntu.com/ubuntu focal/main amd64 Packages

答案1

对我来说,有效的方法是这样的:

dpkg --add-architecture i386
apt update
apt install libc6-i386

如所述这里

答案2

我之前使用的是微软的较新版本libodbc1,但它与不兼容libodbc1:i386

我禁用了 Microsoft 软件包 URL,并降级libodbc1到版本2.3.6-0.1build1,并且libodbc1:i386安装得很好。

现在一切似乎都正常了。我只希望微软的产品将来不会出问题。

答案3

您是否安装了多架构支持?如果没有,请尝试:

sudo apt-get -y install multiarch-support:i386    

相关内容