64 位 Debian 7 系统运行 32 位程序

Debian 7 (wheezy) 实现了 Multiarch 来支持一个系统下运行不同 arch 的程序。最常见的是在 64 位系统下运行 32 位程序。
与 Debian 6 (squeeze) 不同,wheezy 不能直接安装 ia32-libs,会出现

ia32-libs : Depends: ia32-libs-i386 which is a virtual package.

其实 Multiarch 是把 i386 的软件包放到了 i386 的源里面,这样使得 amd64 的源很干净没有任何非 amd64 的 binary。
所以我们的思路和 squeeze 是一样的,要安装 ia32-libs 才能在 64 位系统下运行 32 位程序。但是安装前要启用 i386:

# dpkg --add-architecture i386

安装后 apt 会把 i386 的软件包一起 cache 起来,执行:

# apt-get update

完成后就可以安装 ia32-libs 了:

# apt-get install ia32-libs

安装后只要依赖关系满足,32 位的程序就能正常运行了。

如果以后不想要 i386 支持了,只要运行:

# dpkg --remove-architecture i386