我试图让游戏运行起来。但是我在 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。