Ubuntu Weekly Recipe

第646回 Raspberry PiをIoTデバイスとして活用できるUbuntu Core

この記事を読むのに必要な時間:およそ 7.5 分

Ubuntuはデスクトップ向け・サーバー向けだけでなく,IoT向けの用途にも注力しています。その中核となるのが,普通のLinuxディストリビューションとは異なるUbuntu Coreです。今回はRaspberry PiにUbuntu Coreをインストールして,その片鱗を味わってみましょう。

SnappyとかSnapとか言われてきたUbuntu Core

もともと「Ubuntu Core」「Snappy Ubuntu Core」と呼ばれていた時期がありました。⁠Snappy」はUbuntuがまだ「第三のモバイルOS四天王」の一角を占めていたころに登場した仕組みで,Ubuntu Phoneの開発で得られた知見を元に,よりIoT・コンテナ向けのシステムを構築するためのプラットフォームとなることが目的でした。

当時の「目論見」の詳細はUbuntu Weekly Topicsの2014年12月12日号に詳しくまとまっています※1⁠。無事に実現されたもの,いろいろあって諦めたものなどいろいろありますので,今一度当時の様子を確認して比較してみても良いでしょう。さらに登場して1年ぐらい経ったあとの第392回Snappy Ubuntu Coreを試してみるではいくつかの仮想マシンやクラウドサービス上でSnappyのインストール・利用方法を紹介しました。

※1
Snappyが登場した時点で「Ubuntu Core」という名前はすでに別の用途使われていました。当時のUbuntu Coreは「最低限aptコマンドでパッケージをインストールできる,Ubuntuとしての最小のルートファイルシステム」をアーカイブしたデータを意味していたのです。旧Ubuntu Coreは,現在ではUbuntu Baseという名前になって引き続き活用されています。

その後,コマンド名やパッケージフォーマット名がsnappyからsnapに変わったあたりで「Snappy」とは呼ばれなくなり,snapパッケージ自体が通常のシステムでも活用されるようになったあたりで単なる「Ubuntu Core」と呼ぶようになり,サイトもsnapパッケージのビルドツールに合わせて「snapcraft.io」となったりと,名前もいろいろと変遷しています。

現在は次のように名前を使い分けているようです。

  • Ubuntu Core:IoT向けにsnapベースで構築したUbuntuシステムの総称。ベースシステムのバージョンに合わせて「Ubuntu Core 18(UC18⁠⁠」と表現することも。
  • core18:ベースシステムのバージョン名であり,システム自体のsnapパッケージでもある。Ubuntu 18.04 LTSベースなら「core18⁠⁠,Ubuntu 20.04 LTSベースなら「core20」となる。
  • snap:Ubuntu Coreで採用されているパッケージ管理システムであり管理用のコマンド。
  • snapd:snapパッケージを管理するデーモン。実質snapシステムの要石であり,snapdさえ一貫性が保たれていたら,core18とcore20をひとつのシステムで共存させることも可能。
  • Snap Store:snapパッケージの公式リポジトリ。独自ブランドのリポジトリを構築する方法も用意されている。
  • snapcraft:snapパッケージをビルドするためのツールであり,アプリ開発者向けのポータルサイト。

2020年12月時点での最新版はUbuntu 18.04 LTSベースのUbuntu Core 18です。Ubuntu 20.04 LTSベースのUbuntu Core 20(UC20)は現在開発中で,間もなくリリースされる見込みとなっています。UC20ではインストーラーの改善,より大規模デプロイに向けたMAASやcloud-initのサポート,ディスク全体の暗号化などに対応する予定です。

著者プロフィール

柴田充也(しばたみつや)

Ubuntu Japanese Team Member株式会社 創夢所属。数年前にLaunchpad上でStellariumの翻訳をしたことがきっかけで,Ubuntuの翻訳にも関わるようになりました。