如何在 64 位安装中 apt-get 获取 32 位软件包?

如何在 64 位安装中 apt-get 获取 32 位软件包?

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

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

还有其他工具可以自动执行该操作吗? 可能是下载 i386 软件包并将所含库隐式重定位到 /usr/lib32/ 的工具吗?

答案1

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

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

只需添加:i386您想要安装的包的名称。

例如,我需要 32 位版本的 Java 7,只需运行以下命令即可安装它(以及它的所有依赖项):

sudo apt-get install openjdk-7-jdk:i386

答案2

是的,拥有 chroot 环境是可行的方法,它甚至允许将以前的版本与您现有的 Ubuntu 并排放置。

做起来很简单;

sudo apt-get install debootstrap schroot

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

[lucid32]
type=directory
description=Ubuntu Lucid 32bit
directory=/chroot/lucid32
users=your-user
root-groups=root
personality=linux32

然后安装chroot环境:

sudo debootstrap --variant=buildd --arch i386 lucid /chroot/lucid32 http://nl.archive.ubuntu.com/ubuntu

然后使用以下命令进入 chroot:

schroot -c lucid32

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

sudo schroot -c lucid32

答案3

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

获取库

顾名思义,它只能安装库,而不能安装应用程序。但它在将 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(在德国)

答案4

在 64 位系统上强制安装 32 位库会破坏您的系统。您需要设置 32 位 chroot。请参阅http://ubuntuforums.org/showthread.php?t=24575

相关内容