我在尚不支持网络的虚拟化平台上运行了一个相当受限的虚拟 ubuntu 环境。我需要对编译进行基准测试,但我的客户端没有安装 build-essential。我想从 .deb 执行安装,但我还必须下载所有必需的软件包。
更糟糕的是,我的主机是 x86,但我的客户机是 ARM。我可以做类似以下的事情吗:告诉 apt-get 假装已经安装了一组特定的软件包,下载所需的 .debs,并假装它在 ARM 系统上运行?
我知道,这是一个艰巨的任务,因此,如果能对这一链条中的任何部分提供帮助,我们都会非常感激。
答案1
当我想获取 Ubuntu 的 .deb 时,我会执行以下操作:例如,如果版本适用于 Maverick,我会输入以下 URL 来获取所有 Maverick 软件包中的任意一个(适用于 x86):
http://packages.ubuntu.com/maverick/allpackages
注意:从基本版本网页(例如上面的 maverick)按照特定的软件包链接转到特定软件包的下载页面,它会告诉你它所依赖的其他软件包
由于您的问题是 x86 主机上的 ARM 相关客户机,因此您可能至少需要执行以下操作:
1)使用 Synaptic 包管理器下载所需包的源代码,包括 build-essentisl
2) 您要做的就是将源代码从主机架构 (x86) 交叉编译到客户机的目标架构 (ARM),然后为目标创建一个 .deb,该 .deb 将安装在虚拟客户机 (ARM) 中。编译器的 Gcc 技术应该能够处理这个问题。更正:由于您没有 ARM 架构 - 我不确定虚拟 ARM 将如何在 x86 托管环境中工作,因此,除了在具有 ARM 架构的真实环境中,您可能不必进行交叉编译 - 因此,请忽略 2)。汤姆
3)你可以使用 ubucompilator 创建 .deb 包(据说这是创建 .deb 包的简单方法
4)参见以下参考资料:
Ubucompilator - 从源文件创建 .deb 包的简便方法: http://www.ubuntugeek.com/ubucompilator-easy-way-of-creating-deb-packages-from-source-files.html