2011-05-14 78 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)?

相關問題