linux – 在32位机器上创建64位Debian软件包

我正在尝试使用以下方法创建amd64包:

sudo dpkg-buildpackage -us -uc -aamd64

在i386机器上.

我得到的错误是:

Can't exec "x86_64-linux-gnu-strip": no such file or directory at /usr/share/perl5/Debian/Debhelper/Dh_Lib.pm line 215

有什么建议?

最佳答案
您可以使用多种方法.许多Debian开发人员使用pbuilder,它可以使用特定工具创建chroot – 快速谷歌搜索引导我到this Ubuntu wiki page,但也有Debian维基页面.

另一种方法是使用虚拟环境,libkvm或virtualbox,或者vagrant,……我最近需要为Ubuntu 12.04 LTS提供当前软件包的“后端”,并立即为它设置vagrant.

编辑:这是我最近的笔记,当我需要64位Ubuntu 12.04环境(reb-)构建/反向移动当前包以便从Travis CI / GitHub使用它时.我的主机是这个练习的32位Ubuntu笔记本电脑,当时运行的是Ubuntu 13.10:

>从Vagrant安装vagrant 1.5.1 deb
>运行vagrant init hashicorp / precise64以设置64位Ubuntu 12.04实例
(参见指南http://docs.vagrantup.com/v2/getting-started/
http://docs.vagrantup.com/v2/getting-started/boxes.html)
>运行流浪汉需要一点时间
>运行vagrant ssh,我们现在处于提示状态.
> [outside]将三元组dsc / orig.tar.gz / changes.gz复制到〜/ vagrant / tmp,与Vagrant实例共享
> [再次内部]运行sudo apt-get update; sudo apt-get install dpkg-dev后跟
dpkg-source -x * .dsc
> [外:根据需要编辑debian / changelog]
>运行sudo apt-get install …. build-depends列出….安装列出的Build-Depenbds
>运行dpkg-buildpackage -us -uc -rfakeroot来构建包.

我已经部署了我在一些Travis构建中创建的二进制包.所以:在32位系统上创建一个64位软件包.

Vagrant是一种相当流行的工具,并被大量虚拟提供商使用.

如果您使用64位Linux作为主机,您可以通过docker.io做得更好,这可能是最新,最快,性能最高的方法(因此可能优于Qemu方法 – 例如this recent post

转载注明原文:linux – 在32位机器上创建64位Debian软件包 - 代码日志