Raspberry Pi 400パソコン/Raspberry Pi OSにsnapdをインストールしてみた話。
先日、ノートパソコンdynabookのDebian amd64でSnappy(snap/snapd)デビューしたものの、今や、ラズパイ400がメインと化しているので。
snapは、依存関係を含めてパッケージ(独立・隔離・サンドボックス)として提供されるパッケージ管理システムで似たような仕組みのものにはFlatpakがあります。
Wikipediaによれば、snap/Snappyとは、カノニカル(社)が設計・開発したソフトウェアデプロイメントシステムかつパッケージ管理システムとのこと。
サンプルとしてsnapリポジトリからLinuxコンテナLXCをUbuntuを開発したCanonical社が改良、LXCを内包した(と思われる)LXDをインストールしてみました。
snapは、Raspberry Pi OSのリポジトリにsnapdパッケージとして存在するのでaptでインストールできます。
そしてsnapでcoreをインストールしておくのがお作法のようです。
また、パッケージのあるsnap-storeをインストール。
存在を知っていれば、任意のアプリlxdを探してみて収録されており、かつ、ホストのアーキテクチャーに対応していれば結果表示されるのでインストールできます。
LXDはLinuxホスト上で別のLinuxなどのOSを走らせることができる軽量なコンテナハイパーバイザー。
LXD3.xまでは、コンテナを作ることができる、LXD4.0からは、コンテナの他、KVMのようにQEMUを使って仮想マシンも作ることができるようになり、また仮想の多重化(コンテナ内にVirutalBox入れたりとか)もできるとのこと。
現在のバージョンは、5.5でした。
尚、LXDのコンテナは、Dockerのように特定アプリケーション用ではなく、Linux環境そのもののコンテナと言って良さげ。
SPICE経由などでリモートデスクトップ上にGUIデスクトップを表示させることは可能も基本、CLIベースのサーバを構成することが主眼の模様。
また、現状、作成される仮想マシンは、コンテナと比べると制限があるようですが、将来的には、コンテナでも仮想マシンでも同じことができるようにするのが目標とのこと。
ちなみに(checked)の部分は、実際には、レ点のような薄緑色のマークです。
lxdは、/snapにインストールされるようなので/snap/binにPATHを通しました。
また、グループlxd(あるはずですが、なければ作成)にUSERを追加しました。
これを有効にすべく、一度、ログアウトし、再ログイン。
lxd initで対話形式の初期設定。
へ?なにそれ?yesだとどうでnoだとどうなるの?みたいなのもありますが、さておきます。
コンテナや仮想マシンの管理には、lxcコマンドを使うとのこと。
リモート先にあるコンテナのリストを確認(lxc remote list)すると初期段階では?、images、local (cuurent)、ubuntu、ubuntu dailyの4つがあることがわかります。
例えば、imagesのリストを確認するとしたら、lxc image list images:で一覧が、: の右辺に一定のキーワードを指定すると絞り込みができ、そうでないものは、必要なら結果を見てからgrep等で。
ダウンロードと実行は、lxc image launchで、あとは、lxc --helpを確認すると一通りできることがわかります(そんなに多くはありません)。
lxc execを使うとホストからコンテナに対してコマンドを送ることができました。
lxc file pullやlxc file pushでコンテナから、またはコンテナにファイルを渡すこともできるようです。
コンテナにログインするには、同じく、lxc execでシェルを起動すれば良いようです。
抜けるには、exit+[Enter]か、[Ctrl]+[d]。
コンテナ、かつ、CLIということもあってか、ホストのCPUもRAMも、使った分だけということなのかディスクも、ほとんど消費していないようです。
その辺り含め、他の仮想化とは違って、なかなか、興味深いですね。
imagesには、最新の面白いディストロもある一方、種類が、やや少ない気もしますが、そこは、さておきます。
何れにせよ、ここでは、この辺までということで。
LXDによる仮想マシン作成機能としてPC/Debian bullseye amd64/snap/LXDの仮想マシンにWindows 10 x86_64をインストールしてみました。
ARM版Windows 10/Windows 11のインストーラISOは現時点では入手できない模様、Windows 11 Insider Program版はARM版もHyper-V用仮想マシンであり、Raspberry Pi 400/KVMでも試してはみましたが、起動させることができずじまい。
そもそもLXDにおけるqemuの使用はホストアーキテクチャー縛りがあるっぽい。
仮にできたとしてもarm64 Raspberry Pi 400/Raspberry Pi OS/KVMでWindows 10 x86_64のインストーラISOやMSEdge仮想マシンを試してみた結果、後者はできず、できた前者にしてもWindowsのインストールにおける言語選択の初期画面が表示されるまですら長く、その後の工程も推して知るべしかと検証を断念したほどなので。