Ubuntu Weekly Recipe

第416回 Scratch 2.0をコンテナの中で動かす

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

Scratchは子供の教育用に開発されたプログラミング言語です。Raspberry Piで動いたり,NHKの教育番組で取り上げられたりと,いろいろな場所で活躍しています。今回はそのScratchの最新版である2.0をUbuntuで使う方法を紹介します。

Scratch 1.4とScratch 2.0

ScratchはMITメディアラボが開発したプログラミング言語です。子供が学習することを主眼に置いているため,他のプログラミング言語に比べると学びやすく,視覚的な効果が多彩な作りになっています。

たとえば先日NHK教育で放送されたWhy!? プログラミングでは,プログラミング番組の教材としてScratchを使っています※1)⁠教育用コンピューターとして始まったRaspberry PiのOSにもScratchが最初からインストールされています。また,Scratchのサイトには言語の紹介だけでなく,保護者の方へ教育関係者の方へといったコンテンツがあることも特徴です。

※1
これまで放送した回は番組サイトで配信されています。基本からはじめて,最新話である第五話ではバブルソートに触れていたりもします。

さて,Scratchにはバージョンとして「1.4」「2.0」が存在します。Scratch 1.4はスタンドアローンなアプリケーションで,Ubuntuでも以前からパッケージ管理システム経由でインストールできます。それに対してScratch 2.0はウェブアプリケーションになりました。つまりインターネットにつながっているウェブブラウザ(とAdobe Flash)があれば,どんなマシン上でもプログラミングできるということです。

Scratch 2.0ではウェブ上での共有機能も充実し,ウェブサイトにも簡単に作成したプロジェクトを埋め込めるようになりました。現在では,日本はもちろんのこと世界中で活発な開発コミュニティが形成されているようです。前述のNHK教育の番組でも,番組内で作成したプロジェクトは番組のサイトで公開されています。また,プロジェクト自体はScratchのサーバー上にあるため,誰でも番組で使ったコードを読めるのです。

ところでScratch 2.0がウェブアプリケーションであるということは,インターネットにつながっていないと実行はおろかプログラミングもできないということです。インターネットへの接続環境が充実している日本だとそこまで問題にはなりませんが,世界に目を向ければオフラインでScratch 2.0を使いたいという要望はまだまだあるはずです。

そこでScratch 2.0にはオフラインエディターというインターネットに接続せずともプログラミングできるソフトウェアがあります。今回はこれを使うことにしましょう※2)⁠オフラインエディターはWindowsやMac OS XだけでなくLinuxもサポートしており,動かすためにはAdobe AIRが必要なんだそうです。

※2
プログラミングするだけならScratch 1.4を使うというのも手です。何よりRaspberry Piではアーキテクチャの都合でScratch 1.4しか使えません。Scratch 2.0で作られたプロジェクトを動かすことはできませんが,1.4で作ったプロジェクトをScratchのサイトにアップロードしたり公開することは可能です。

図1 無情にも踊る「Linux 版 Adobe AIR のサポートは終了しました」の文字列

画像

 

……あー,Adobe AIRですかー。あー。

Scratch 2.0をコンテナにインストールする

Adobe AIRは32bitバイナリしか提供していません。つまり64bit環境で実行しようとすると,32bitライブラリをまず用意しなくてはいけないのです。そもそもサポートの切れた,しかもソースコードが公開されていないバイナリをシステムにインストールすることに抵抗がある方も多いことでしょう。

そこで今回はLXDコンテナの中に32bit版のUbuntu環境を用意し,そこにAdobe AIRやScratch 2.0をインストールすることにします。

LXDのインストール

LXD「コンテナのハイパーバイザー」として開発されているサービスです。簡単に言うと,複数のホストにまたがった複数のLXC製のコンテナをより簡単に管理できるツールです。コンテナの起動や終了は元より,スナップショットの作成,ライブマイグレーション,稼働中のコンテナからのベースイメージの作成,イメージの公開,複数のコンテナに適用できるプロファイルなどなど,これまでLXCの複数のコマンドと設定ファイルを駆使していた作業が,一つのコマンドから操作できるようになっています※3)⁠

※3
Topicsの2016年3月18日号でも紹介されていますが,LXDの開発者の一人であるStéphane Graberが,LXD 2.0の詳細な紹介記事を書いています。公開された記事は随時Qiita上で日本語にも翻訳していますので,LXDそのものに興味のある方はそちらもご覧ください。

LXDは現在,Ubuntu 16.04 LTSにあわせて2.0をリリースすべく,リリース候補版が提供されています。サーバー版の16.04では,このLXD 2.0が最初からインストールされる予定ですので,今回はLXD 2.0を使うことにします。⁠本稿掲載時ではまだ開発中の)16.04を使っている場合は,次のようにインストールしてください。

$ sudo apt install lxd

ちなみに,LXD 2.0は14.04にもバックポートされています。よって,14.04でも次のようにインストールできます。

$ sudo apt -t trusty-backports install lxd

またインストール後に「sudo lxd init」を実行すると,ZFSなどの設定を行えます。必要な場合は設定してください。

ここまで完了したら,lxdグループに参加するために一度ログインしなおしてください。ログインしなおしても参加していないようなら手動で参加させておきましょう。LXDの本体はデーモンとして動作しています。lxdグループに所属しているユーザーはこのデーモンとunixドメインソケットで通信できます。よって以降の作業は,sudoが不要です。

著者プロフィール

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

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

コメント

コメントの記入