2021-05-12 14:32:11
如何在樹莓派 2 執行 Ubuntu Snappy Core
物聯網(Internet of Things, IoT) 時代即將來臨。很快,過不了幾年,我們就會問自己當初是怎麼在沒有物聯網的情況下生存的,就像我們現在懷疑過去沒有手機的年代。Canonical 就是一個物聯網快速發展卻還是開放市場下的競爭者。這家公司宣稱自己把賭注壓到了IoT 上,就像他們已經在“雲”上做過的一樣。在今年一月底,Canonical 啟動了一個基於Ubuntu Core 的小型作業系統,名字叫做 Ubuntu Snappy Core 。
Snappy 代表了兩種意思,它是一種用來替代 deb 的新的打包格式;也是一個用來更新系統的前端,從CoreOS、紅帽子和其他系統借鑑了原子更新這個想法。自從樹莓派 2 投入市場,Canonical 很快就發布了用於樹莓派的Snappy Core 版本。而第一代樹莓派因為是基於ARMv6 ,Ubuntu 的ARM 映象是基於ARMv7 ,所以不能執行ubuntu 。不過這種狀況現在改變了,Canonical 通過發布 Snappy Core 的RPI2 映象,抓住機會證明了Snappy 就是一個用於雲端計算,特別是用於物聯網的系統。
Snappy 同樣可以執行在其它像Amazon EC2, Microsofts Azure, Google的 Compute Engine 這樣的雲端上,也可以虛擬化在 KVM、Virtuabox 和vagrant 上。Canonical Ubuntu 已經擁抱了微軟、谷歌、Docker、OpenStack 這些重量級選手,同時也與一些小專案達成合作關係。除了一些創業公司,比如 Ninja Sphere、Erle Robotics,還有一些開發板生產商,比如 Odroid、Banana Pro, Udoo, PCDuino 和 Parallella 、全志,Snappy 也提供了支援。Snappy Core 同時也希望儘快執行到路由器上來幫助改進路由器生產商目前很少更新韌體的策略。
接下來,讓我們看看怎麼樣在樹莓派 2 上執行 Ubuntu Snappy Core。
用於樹莓派2 的Snappy 映象可以從 Raspberry Pi 網站 上下載。解壓縮出來的映象必須寫到一個至少8GB 大小的SD 卡。儘管原始系統很小,但是原子升級和回滾功能會佔用不小的空間。使用 Snappy 啟動樹莓派 2 後你就可以使用預設使用者名稱和密碼(都是ubuntu)登入系統。
sudo 已經設定好了可以直接用,安全起見,你應該使用以下命令來修改你的使用者名稱
$ sudo usermod -l <new name><old name>
或者也可以使用adduser
為你新增一個新使用者。
因為RPI缺少硬體時鐘,而 Snappy Core 映象並不知道這一點,所以系統會有一個小 bug:處理某些命令時會報很多錯。不過這個很容易解決:
使用這個命令來確認這個bug 是否影響:
$ date
如果輸出類似 "Thu Jan 1 01:56:44 UTC 1970", 你可以這樣做來改正:
$ sudo date --set="Sun Apr 04 17:43:26 UTC 2015"
改成你的實際時間。
現在你可能打算檢查一下,看看有沒有可用的更新。注意通常使用的命令是不行的:
$ sudo apt-get update && sudo apt-get distupgrade
這時系統不會讓你通過,因為 Snappy 使用它自己精簡過的、基於dpkg 的包管理系統。這麼做的原因是 Snappy 會執行很多嵌入式程式,而同時你也會試圖所有事情盡可能的簡化。
讓我們來看看最關鍵的部分,理解一下程式是如何與 Snappy 工作的。執行 Snappy 的SD 卡上除了 boot 分割區外還有3個分割區。其中的兩個構成了一個重複的檔案系統。這兩個平行檔案系統被固定掛載為唯讀模式,並且任何時刻只有一個是啟用的。第三個分割區是一個部分可寫的檔案系統,用來讓使用者儲存資料。通過更新系統,標記為'system-a' 的分割區會保持一個完整的檔案系統,被稱作核心,而另一個平行的檔案系統仍然會是空的。
如果我們執行以下命令:
$ sudo snappy update
系統將會在'system-b' 上作為一個整體進行更新,這有點像是更新一個映象檔案。接下來你將會被告知要重新啟動系統來啟用新核心。
重新啟動之後,執行下面的命令可以檢查你的系統是否已經更新到最新版本,以及當前被啟用的是哪個核心
$ sudo snappy versions -a
經過更新-重新啟動兩步操作,你應該可以看到被啟用的核心已經被改變了。
因為到目前為止我們還沒有安裝任何軟體,所以可以用下面的命令更新:
$ sudo snappy update ubuntu-core
如果你打算僅僅更新特定的OS 版本這就夠了。如果出了問題,你可以使用下面的命令回滾:
$ sudo snappy rollback ubuntu-core
這將會把系統狀態回滾到更新之前。
再來說說那些讓 Snappy 變得有用的軟體。這裡不會講的太多關於如何構建軟體、向 Snappy 應用商店新增軟體的基礎知識,但是你可以通過 Freenode 上的IRC 頻道 #snappy 了解更多資訊,那個上面有很多人參與。你可以通過瀏覽器存取http://<ip-address>:4200 來瀏覽應用商店,然後從商店安裝軟體,再在瀏覽器裡存取 http://webdm.local 來啟動程式。如何構建用於 Snappy 的軟體並不難,而且也有了現成的參考文件 。你也可以很容易的把 DEB 安裝包使用Snappy 格式移植到Snappy 上。
儘管 Ubuntu Snappy Core 吸引了我們去研究新型的 Snappy 安裝包格式和 Canonical 式的原子更新操作,但是因為有限的可用應用,它現在在生產環境裡還不是很有用。但是既然搭建一個 Snappy 環境如此簡單,這看起來是一個學點新東西的好機會。
在(Raspberry Pi)樹莓派上安裝NodeJS http://www.linuxidc.com/Linux/2015-01/111714.htm
Raspberry Pi 樹莓派上安裝Weston http://www.linuxidc.com/Linux/2013-06/86685.htm
用於Raspberry Pi 的Linux 作業系統已經可用 http://www.linuxidc.com/Linux/2012-03/56058.htm
Raspberry Pi(樹莓派)試用小記 http://www.linuxidc.com/Linux/2013-10/91008.htm
Raspberry Pi(樹莓派)的安裝、設定IP及軟體源等入門 http://www.linuxidc.com/Linux/2013-10/91009.htm
via: http://xmodulo.com/ubuntu-snappy-core-raspberry-pi-2.html
作者:Ferdinand Thommes 譯者:Ezio 校對:wxy
本文永久更新連結地址:http://www.linuxidc.com/Linux/2015-08/122438.htm
相關文章