2011-05-14 80 views
1

我目前正在为inPulse手表开发应用程序(如果您是极客,请查看www.GetInPulse.com),并在Mac上编译手表。但是将应用程序部署到设备需要几分钟的时间。然而,他们提供了一个模拟器,但只能在Linux下运行,所以我将Ubuntu安装在虚拟机上,这非常棒。是否可以在主机操作系统中创建makefile步骤在VM中运行的客户操作系统内执行shell命令?

我希望完全停留在Mac方面,除了能够执行构建步骤或shell脚本,可以调用虚拟机并启动一个shell脚本来启动模拟器。这样我就可以在'mac'端添加'sim'作为我的makefile中的一个步骤。

目前,我来回鼠标太多了,我的终端都在主机和客户操作系统的地方打开。只是试图清理起来和跨机器脚本,似乎理论上会起作用。只是不知道跨机器的界限甚至是有效的东西。

+0

虽然你正在编程,但这不是一个真正的编程问题,更多的是操作系统设置问题。由于这两个操作系统都是unices,所以[Unix Stack Exchange](http://unix.stackexchange.com/)将是合适的。如果您的后续问题与编程语言没有密切关联,那么您的构建脚本已经写入,我建议您在那里提问。 – Gilles 2011-05-14 10:39:44

+0

好吧,我不确定是否有脚本专用的东西,必须做,这可能会落在SO页面下,但我也可以看到你的观点。无论哪种方式,我已将您的答案标记为已接受。我正在考虑SSH,看起来这是要走的路。 – MarqueIV 2011-05-15 01:45:08

回答

1

主机操作系统不知道guest虚拟机内有什么“shell”。一个shell是一个与操作系统有关的概念,尽管主机操作系统在技术上知道客户端正在进行的一切,但它唯一的联系是通过观察客户内存和它运行的指令,这里的抽象层次是错误的。

从一个操作系统到另一个操作系统运行shell命令的最自然的方式是通过网络链接使用远程shell工具;在实践中,这意味着SSH。你需要两台机器之间的网络连接,一旦你拥有了这台机器,一台机器运行在另一台机器上并不重要。这两台机器之间可能已经存在网络连接。如果没有,请确保您激活桥接网络或主机专用网络或您的VM技术提供的任何内容。

在主机(可能已有一个)上安装SSH客户端,并在客户端上安装SSH服务器(openssh-serverInstall openssh-server http://bit.ly/software-small)。然后在两台机器之间设置public-key authentication,因此您无需始终输入密码。

您将获得访客的shell访问权限。如果您需要操作GUI应用程序,则需要多做一点工作。 ssh DISPLAY variable可能有帮助,或者可能How can I run Firefox on Linux headlessly (i.e. without requiring libgtk-x11-2.0.so.0)?

相关问题