Chrome OSはシンプルにWebブラウザでできることだけを集中して動かせる環境ですが、そのWebブラウザでできることを開発しようというときには今一歩何かが足りないというときがあります。今までも『Crouton』や『Chromebrew』といった機構でなんとかしようという機運があり、我々は実際になんとかしてきました。
そんな中、本家Chrome OSがAndroid appsやLinux appsをサポートし始め、Chromium OSサイドとしては指を咥えて眺めていることしかできなかったのですが、『ARC Welder』によってAndroid appsが動くようになり、そして今回、CloudReadyが『Flatpak』をサポートしたことでLinux appsが動くという時代がやってきました。
ところで『Flatpak』ってなんぞや?
比較的新しい仕組みなので、知らない人も多いような気がします。『Flatpak』はアプリケーションのパッケージング技術のひとつですが、aptやrpmなどのこれまでの技術と異なり、仮想化技術の一種であることが特徴です。
『Flatpak』でパッケージングされたアプリケーションは、ホスト環境からサンドボックスで隔離された仮想環境として動作することが特徴で、これによって今まで散々悩まされてきたLinuxカーネルやライブラリとの非互換性問題を最小限にすることができる、という仕組みになっています。
残念ながら日本語圏ではまだあまり浸透していない技術で参考になる文献があまりないと思うのですが、この技術の仕組みはmacOSがアプリケーションを実行する際の仕組みに(若干)似ていて、ホスト環境と隔離されているので他のアプリケーションからの干渉を受けにくい(干渉もしにくい)という強みがあります。
よく分からない場合は、少なくとも我々はこれでLinux appsの動作環境を手に入れ、ハッピーになれるということを知っておけばよいです。
CloudReadyでFlatpakを使う上でのちょっとした注意点
ファイルの保存先で、恒久的に保存したいもの(例えばAndroid StudioにおけるAndroid SDKや、編集したファイルなど)は Downloads フォルダ以下に保存する必要があります。これはなぜかというと、デフォルトのロケーションではセッションが終了すると消えてしまうストレージ領域に保存されるからです。Downloads内のファイルはユーザーが手動で消さない限り消えないので、ここを使うトリックが必要になります。
Flatpakからの導入を支援する『Flathub』
『Flatpak』はコマンドラインからも操作することができますが、Web上のアプリストアとして機能する『Flathub』というWebサービスが用意されています。
https://flathub.org/home
このWebサイトから必要なappを探して [Install] ボタンを押せばインストーラが起動してappを導入することができる、というよくあるあれになっています。
とはいえインストーラが起動しない場合もあるのですが、その場合は『ダウンロード』フォルダに *.flatpakref
なファイル名で保存されているファイルを右クリックして [Install application] 的なメニューを選べばよいはずです。
『Android Studio』や『Visual Studio Code』といった開発ツールを含む様々なappが用意されていて、きっと今まで足りなかったことがこなせるようになると思います。
個人的には、理不尽なサーバーの相手をすることが多いので、ファイル転送ツール『FileZilla』があることを大変便利に思っています。