出於測試目的,我自動創建配置的EC2計算機。創建/配置通過ssh連接完成(各種操作系統的邏輯相同)。在Windows(Windows 2003 Server)上,有一個預先配置好的ssh的cygwin,這樣我就可以在那裏ssh了。無法通過cygwin/ssh在Windows上安裝Java JDK
作爲配置的一部分,我需要安裝給定版本的Java SDK。我將exe安裝程序(jdk-6u34-windows-i586.exe)上傳到本機,並使用/ s參數(靜默安裝)運行它。當我從Windows控制檯(遠程桌面)或者通過遠程桌面中的cygwin運行這個功能時,它可以很好地工作。但是當我ssh到那裏並通過ssh在cygwin中運行時,如果失敗。
的失敗似乎是很奇怪的,因爲安裝程序部分提取它的內容爲c:\Documents and Settings\Administrator\Application Data\Sun\Java\jdk1.6.0_34
,然後失敗,退出代碼67。退出之前提取的文件數量各不相同。
以編程方式使用Java和Jsch
執行此操作時,該命令還將錯誤消息initgroups: Permission denied
打印到錯誤流。當我通過ssh手動連接時,我沒有看到這個消息,所以我不確定,如果它是相關的(當使用谷歌搜索時,我發現這個錯誤發生在完全不同的上下文,這並沒有幫助我)。
我會歡迎任何解釋,爲什麼會發生這種情況(以及如何修復/解決此問題)。其他提示如何在EC2窗口機器上可靠地自動安裝給定的JDK也受到歡迎。謝謝。
你試過沒有'/ s'(靜默模式)參數嗎?它可能會爲您提供更多信息來調試問題。 –
將SSH用作「跨平臺」解決方案似乎對我來說有點奇怪。我建議嘗試使用Ant或其他(例如python)腳本工具,這是一個跨平臺的工具。 Cygwin最好是片狀,甚至表示它不能替代unix機器上的shell終端。像一個一樣處理它可能會導致更多的麻煩,而不是它的價值。 –
好點。當沒有'/ s'運行時,結果是一樣的。 我們不使用ssh/cygwin作爲真實腳本。這只是一種方式,如何執行一些簡單的任務 - 在目標機器上覆制文件,執行某些事情等。如果我們使用和或python,我們無論如何不得不以某種方式啓動它們。 – Michal