如何在 64 位安装上 apt-get 32​​ 位软件包?

mar*_*rio 36 64-bit apt 32-bit

我试图让游戏工作。但是我在 amd64 上运行 Lucid Lynx,而游戏二进制文件是 32 位(没有 64 位版本可用,没有人有心情重新编译)。它缺少 libfsml-windows1.5 来运行,并且 apt-getting 失败了。所以我必须手动下载 i386 包并强制安装它们。(不,不是 ia32libs 的一部分。)

现在我想知道是否有一种自动方式可以至少在 64 位安装上下载 x86 软件包。apt-get -o apt::architecture=i386不工作。(如果您切换架构模式,它将找不到该包或假定现有包缺少依赖项。)

还有其他工具可以自动化吗?可能是一种下载 i386 软件包并将包含的库隐式重定位到 /usr/lib32/ 的工具?

Chr*_*iki 37

Ubuntu 11.10 或更高版本的解决方案

从 Ubuntu 11.10 开始,不再需要使用getlibs或其他一些解决方法。64 位系统上的包系统现在能够与 64 位库并行管理 32 位库。您现在甚至可以轻松安装完整的应用程序及其所有依赖项!

只需添加:i386到您要安装的软件包的名称即可。

例如,我需要一个 32 位版本的 Java 7,并且可以通过运行以下命令来安装它(连同它的所有依赖项):

sudo apt-get install openjdk-7-jdk:i386
Run Code Online (Sandbox Code Playgroud)

  • 你不是错过了`dpkg --add-architecture i386`,如[这个答案](https://askubuntu.com/a/524647/364077)中所示? (4认同)

小智 14

是的,拥有一个 chroot 环境是可行的方法,它甚至可以让您现有的 Ubuntu 并排放置以前的版本。

做起来很简单;

sudo apt-get install debootstrap schroot
Run Code Online (Sandbox Code Playgroud)

编辑/etc/schroot/schroot.conf并添加一个新的 schroot 配置:

[lucid32]
type=directory
description=Ubuntu Lucid 32bit
directory=/chroot/lucid32
users=your-user
root-groups=root
personality=linux32
Run Code Online (Sandbox Code Playgroud)

然后安装chroot环境:

sudo debootstrap --variant=buildd --arch i386 lucid /chroot/lucid32 http://nl.archive.ubuntu.com/ubuntu
Run Code Online (Sandbox Code Playgroud)

然后输入 chroot :

schroot -c lucid32
Run Code Online (Sandbox Code Playgroud)

或者对于根任务,例如:运行apt-get任务:

sudo schroot -c lucid32
Run Code Online (Sandbox Code Playgroud)


mar*_*rio 8

傻我。这确实是一个解决的问题。

获取库

顾名思义,它只能安装库,不能安装应用程序。但它非常适合将 32 位库固定到 x86-64 系统上。它会自动下载并安装到 /usr/lib32(假设它在内部进行路径替换。)

ppa:jcollins/jaminppa
https://launchpad.net/~jcollins/+archive/jaminppa/+packages

有些文档(getlibs似乎并不有一个当前主页):
http://ubuntuforums.org/showthread.php?t=474790
https://help.ubuntu.com/community/32bit_and_64bit
HTTP://www.dedoimedo .com/computers/ubuntu-utils.html
http://wiki.ubuntuusers.de/getlibs(德语)

  • 哦,那个注册 s**t 是新的。和。过于。多余的。 (3认同)