第392回の「Snappy Ubuntu Coreを試してみる」では、Ubuntuの新しいイメージとして 「Snappy Ubuntu Core」を紹介しました。このSnappyシステムは今のところ組み込みやクラウドを ターゲットに開発を行っていますが、将来的にはデスクトップやUbuntu Phoneにもその対象を広げる予定です。そこで今回はSnappyのデスクトップ版とも言える「Ubuntu Personal」を試してみます。
Ubuntu Personal = Snappy + Ubuntu Desktop
「Ubuntu Personal」はSnappy Ubuntu Core上で次世代デスクトップ版のUbuntuを動作するようにした イメージです[1]。
第392回でもお伝えしたように、Snappyは標準でロールバック機能や個々のアプリケーションの隔離機能を備えたインストール済みのイメージファイルです。つまりUbuntu Personalのインストールは、これまでのような「Liveイメージからインストーラー経由でパッケージをインストールする」という 形ではなく、「イメージをダウンロード・展開し設定する」というクラウドに近いインストール方法に転換することになります。
また「次世代デスクトップ版」とはMirとUnity8で構築されたデスクトップ環境を意味します。Mirは数十年にわたり使われてきたX Window Systemを置き換える新しいディスプレイサーバーです。KMS(Kernel Mode Setting)やDRM(Direct Rendering Manager)といったカーネル側の機能とより親密に連携することで 描画処理をシンプル、効率化しています。目指すところはWayland/Westonとほぼ同じです。
Unity8は現在も通常のUbuntuで使われているUnityの新バージョンです。新バージョンとは言っていますが、Qtベースで新規に書きなおされた、まったく別のソフトウェアといって差し支えないでしょう。検索ベースの従来のインターフェースに加えて、「コンバージェンス(Convergence)」という概念を導入し、 スマートフォン・タブレット・デスクトップいずれも同じアプリが、それぞれの画面サイズに適したレイアウトで 使えるようになっています。
Mir+Unity8の組み合わせは既にUbuntu Phoneでも採用していますし、Ubuntu Phoneで使われているということは 製品として出回っている実績あるシステムであるということでもあります。実際、Ubuntu Phoneの開発版イメージでは、Bluetoothマウスやキーボードをタブレットに接続すると、 デスクトップライクなマルチウィンドウモードになる仕組みが搭載されています。また、Nexus 4のMHL端子からHDMLディスプレイに接続すると外部ディスプレイモードになる、 コンバージェンスの目標が形になってきました。
もともとMir+Unity8版のUbuntuはSnappyとは別に「Ubuntu Desktop Next」として提供されていました。こちらは普通のUbuntuをベースにディスプレイサーバーやデスクトップUIを差し替えただけのものです。普通のUbuntuなのでapt-getも実行できます。ただしMirの制約により、IntelのGPUが搭載されたマシンか、 VMWare上の仮想マシンでないと動作しません。このUbuntu Desktop Nextは15.04のリリース後あたりに 開発版の作成を停止し、その代わりに提供されるようになったのがSnappy版のUbuntu Desktop Nextである 「Ubuntu Personal」というわけです(Topicsの6月19日号;※2)。
Ubuntu Personalは来年4月にリリース予定の、次のLTSになるであろうUbuntu 16.04 LTSにおいて、 それなりの形になった環境を提供する予定です。今はまだUbuntu PhoneとSnappyの本体に開発リソースが注がれているため まだ「使える」とは程遠い状態ですが、15.10がリリースされたあとは本格的に開発が進むことになるでしょう[3]。
Ubuntu Personalのインストール
では、そのUbuntu PersonalをUbuntu上のQEMU/KVMで試してみましょう。第392回では構築済みのQEMUでも起動できるディスクイメージをダウンロードして起動しましたが、 Ubuntu Personalのディスクイメージは提供されていません。そこでubuntu-device-flashコマンドで、 UbuntuのシステムイメージーサーバーからイメージをダウンロードしてQEMUでも 起動できるRAWイメージに変換します[4]。
環境はUbuntu 14.04 LTS以降で、なおかつKVMが動作する環境であればいずれでもかまいません。理由は後述しますがノートPCの場合は、USB接続の外付けマウスもあったほうが良いでしょう。ただしリポジトリにあるubuntu-device-flashのバージョンは古いため、PPAからインストールします。
ではさっそくRAWイメージを作成してみましょう。
ubuntu-device-flashコマンドは、コマンドオプションでイメージサーバーのURLを決定します。上記の例の場合、「personal」サブコマンドを使って「rolling」リリースの「edge」チャンネルを指定しています。これはURLにすると「https://system-image.ubuntu.com/ubuntu-personal/rolling/edge/」です。アーキテクチャも指定したい場合は「--oem」オプションを使用してください。
このURLからおよそ500MB程度のデータをダウンロードします。実行時は高速なインターネット環境を用意しておきましょう。イメージサーバーからダウンロードしたデータは「~/.cache/ubuntuimages/」以下に保存されます。これはUbuntu Touchデバイスに対してubuntu-device-flashコマンドを使った時も同様です。
作成するイメージのサイズは10GBです。「--size」オプションで変更できます。「--developer-mode」を指定することで、SSH関連の設定が行われます。
イメージの起動は第392回と同じく、kvmコマンドで行います。:
メモリ(-mオプション)は最低でも1024あたりを指定したほうが良いでしょう。第392回との違う点として「-vga qxl」オプションを指定しています。これはビデオカードタイプを指定するオプションで、QXLはリモートデスクトッププロトコルであるSPICEに 最適化されたフレームバッファーデバイスです。今のところKVM上のMirはQXLでしか動作しません。他のvgaオプションを指定した場合は、 自動的に通常のログイン画面に遷移します。
うまく起動すれば、Unity8 Greeterの画面が表示されるはずです。
外付けマウスを使えるようにする
現在のMirはKVM上の仮想マウスを認識できない上に認識できてもカーソルが表示されないという問題があります。そこで別途外付けUSBマウスを接続し、それを仮想マシンにパススルーしましょう。
lsusbコマンドで表示されたID以降の数字をusbdeviceオプションの「host:」より後ろに記載します。パススルーを行うためにはsudoをつけてkvmコマンドを実行する必要があります。パススルーしたUSBデバイスは、仮想マシンが起動中はホスト上では操作できないことに注意してください。
うまくいけばUSBマウスを使ってパスワードフィールドをクリックし、ログインできるようになるはずです。ユーザー名とパスワードはどちらも「ubuntu」です。
最初に起動しているウィンドウは、Ubuntu Phoneで言うところのホーム画面に相当するアプリケーションです。今後デスクトップではどういうUIにしていくか未定ではありますが、今のところこのホームアプリから アプリケーションをインストールしたり、起動したりしていくことになります。
ホームアプリ上にはUbuntu Storeが表示されていますが、現状Ubuntu PersonalにはUbuntu Storeから パッケージのインストールは行えません。
SSHログインできるようにする
ubuntu-device-flashに「--developer」モードを指定すると、sshサーバーが立ち上がります。ただしホスト鍵は自動生成されませんので、SSHアクセスするためにはコンソールログインして、 鍵を生成する必要があります。
QEMUの場合、コンソール画面はウィンドウを表示している状態で「Ctrl-Alt-3」を押してください[5]。コンソールログイン画面が表示されるので、ユーザー名とパスワードに「ubuntu」を入力してログインします。あとは次のコマンドでホスト鍵を生成できます。
あとはホストからSSHログインしてください。今回の例のように「-redir」オプションでにゲストの22番ポートを ホストの8022番ポートにリダイレクトしているのであれば、次のコマンドでログインできます。
Ubuntu Personalの中身はSnappyシステムですので、APT関連のコマンドは使用できません。
その代わりsnappyコマンドでパッケージをインストールすることになります。
実機でもUbuntu Personal
今回作成したpersonal_x86.imgファイルは、ただのRAWイメージですのでUSBストレージなどにddコマンドでダンプできます。そのストレージデバイスから起動すると、仮想マシンではなく実機としてUbuntu Personalを体験可能です。
しかしながらここまでの状況を実際に試してもらえればわかるように、かなり「実験的」な状態です。Ubuntu Phoneのアプリ(clickパッケージ)も従来のソフトウェア(debパッケージ)もそのままではインストールできず、 Snappy向けのアプリ(snapパッケージ)はCLI向けのソフトウェアしかありません。
このあたりの機能不足や他のソリューションとの整合性、16.04に向けての方針については 来月頭に開催されるUbuntu Online Summitにて話し合われる予定です。UOSの内容をより理解するためにも、Ubuntu Personalを試すことで 次世代Ubuntuの「現在の状態」を把握してみるのはいかがでしょうか。