我正在努力制作一个可以在Ubuntu 12.04-13.*的1386和amd64上安装的软件包。我已经发现,在amd64上唯一的区别是我需要安装32位库。依赖于ia32-libs会在系统中存在时(即使这样做有些多余),但是13.*甚至没有该软件包。因此,我试图通过':i386'扩展名进行安装。当我执行sudo apt-get install blah:i386 ...等
时,它可以正常工作。
下面的控制文件在12.04上产生了"Dependency not satisfiable: libgcc1:i386"的消息。
包名: foo 版本号: 1.0-1 分类: 基础 优先级: 可选 维护者: bar@gmail.com 架构: 全部 依赖关系: libgcc1:i386, gcc-4.6-base:i386, libstdc++5:i386, libstdc++6:i386, libsasl2-2:i386, libgstreamermm-0.10-2:i386, libfreetype6:i386, libfontconfig1:i386, libX11-6:i386, libXrender1:i386, libice6:i386, libxext6:i386, libsm6:i386 描述: foo非常棒 foo真的很棒 已安装大小: 71140因此,根据其他一些地方的说法,我制作了以下控制文件:
包:foo-amd64 版本:1.0-1 部分:基础 优先级:可选 维护者:bar@gmail.com 架构:amd64 依赖:foo,libgcc1:i386,gcc-4.6-base:i386,libstdc++5:i386,libstdc++6:i386,libsasl2-2:i386,libgstreamermm-0.10-2:i386,libfreetype6:i386, libfontconfig1:i386,libX11-6:i386,libXrender1:i386,libice6:i386,libxext6:i386,libsm6:i386 描述:foo很棒 foo真的很棒 已安装大小:71140
包:foo 版本:1.0-1 部分:基础 优先级:可选 维护者:bar@gmail.com 架构:i386 依赖:gksu 多架构:foreign 描述:foo很棒 foo真的很棒 已安装大小:71140
这个控制文件无法编译,因为我收到以下错误信息:
dpkg-deb: error: parsing file 'foo/DEBIAN/control' near line 25 package 'foo':
several package info entries found, only one allowed
。我应该如何正确操作?编辑:此软件包不附带源代码。它附带的是编译好的32位二进制文件,因此需要依赖于32位版本的库。
/usr/lib
中删除旧版本的库),每个共享库必须在多架构支持包上声明Pre-Depends
。从 Debian 8(Jessie)开始不再需要这样做,并且现已弃用。Debhelper将自动正确填写${misc:Pre-Depends}
变量。 - patryk.beza