2015-09-25 39 views
0

我是樹莓派的新手。 我想開發使用Raspberry Pi的小程序。 我將爲我的用戶提供的Raspberry Pi遠程更新選項有哪些。Raspberry Pi遠程更新整個操作系統或NodeJS

比如我在紐約,我的用戶是在亞特蘭大和芝加哥。 一旦我給他們添加了NodeJS和節點程序的樹莓派。 如果我想修改程序或更新操作系統本身,如果有任何問題考慮到他們沒有技術知識,我該如何遠程更新它?

反正是有遠程控制的是整個皮?

我知道SSH選項,但是這將是在同一個網絡吧?

一些專家的幫助會很好。

+0

如果您擁有root權限並且啓用了遠程終端連接,並且可以從互聯網公開訪問Raspberry Pis,並且每個人都有一個IP地址,則可以通過遠程終端連接到其中的每一個,然後執行任何你想要的東西。 – jfriend00

+0

你好jfriend00,你能告訴我我該怎麼做?在我發送給他們之前,我會和我一起玩,但是一旦我發送了,我應該怎麼做才能進入?我怎樣才能得到他們的公共IP地址到遠程進入? – Sandy

回答

1

猜你想更新你的node.js應用程序,而不是操作系統。 畢竟所有的應用程序都是自己更新的,而不是他們的主機操作系統。

總之,我做的是我有一個指向保存版本和更新包(tar.gz的)更新服務器的一些公共DNS。 客戶端PI只是每隔一段時間向更新服務器發送一個http請求,並檢查遠程版本與本地版本的比較,如果遠程版本比較大,那麼他們會執行另一個http請求來下載更新的軟件包。 一旦你下載它,只需解壓並替換文件。 替換後,我殺死了node.js進程。 我有一個新貴的設置,以重新啓動node.js過程,如果它的下降,所以基本上在我替換文件和殺死過程後,新貴會重新運行node.js,但現在更新的文件。

你可以做一個簡單的解決方案,並有下載服務器只是在保管箱或一些東西公用文件夾。 但它確實是你正在構建的應用程序,以及如何嚴重的是:) 督察通常是小家的項目,如我有什麼(我把圓周率在不同的位置同步/備份數據)。

我真的建議不要通過SSH推入遠程pis任何事情,因爲這意味着他們將不得不將自己暴露於公共互聯網,從安全的角度來看,絕對不建議您,並且您必須在每個位置(路由器規則公開pi,在本地網絡中設置靜態IP,爲客戶端位置設置DNS)。 讓這些PI連接到您的PULL更新更簡單,更好。

+0

感謝薩吉,這就是我現在決定的。每次程序啓動時檢查更新的版本號,如果新版本可用,則下載並替換現有版本。我是unix新手,所以你有任何示例顯示開始一個更新過程,然後停止,然後再次啓動主進程,如果一切都更新?我有我的amazon實例,它可以在.zip或ta.gz中提供程序的更新包。這兩者之間的最佳選擇是什麼?如何做新貴? – Sandy

+0

我確定你會在你的nodejs應用程序中執行它,而不是在unix shell中。在unix中,你可以通過wget(wget )做一個簡單的http獲取,它將下載資源,該資源可以是具有版本號的文件,或者tar.gz與實際更新。比untar或unzip(通常使用tar.gz而不是zip,但它對你沒有太大的影響)。但是,這是一個全新的問題,在評論中很難回答,因爲我甚至無法在此處推送代碼片段。 – sagie

+0

已經完成並正在工作。因此程序更新現在可以隨時更新。 – Sandy

-1

只是一個建議。你可以使用git和webhooks。這也是維持版本歷史的一種輕而易舉的方式。您還應該考慮持續集成。