動作環境

Go

LXD は Go 1.13 以上を必要とし、 golang のコンパイラのみでテストされています。 (訳注: 以前は gccgo もサポートされていましたが golang のみになりました)

必要なカーネルバージョン

サポートされる最小のカーネルバージョンは 3.13 です。

LXD には以下の機能をサポートするカーネルが必要です。

  • Namespaces (pid, net, uts, ipc と mount)
  • Seccomp

以下のオプションの機能はさらなるカーネルオプションを必要とします。

  • Namespaces (user と cgroup)
  • AppArmor (mount mediation に対する Ubuntu パッチを含む)
  • Control Groups (blkio, cpuset, devices, memory, pids と net_prio)
  • CRIU (正確な詳細は CRIU のアップストリームを参照のこと)

さらに使用している LXC のバージョンで必要とされる他のカーネルの機能も 必要です。

LXC

LXD は以下のビルドオプションでビルドされた LXC 3.0.0 以上を必要とします。

  • apparmor (もし LXD の apparmor サポートを使用するのであれば)
  • seccomp

Ubuntu を含む、さまざまなディストリビューションの最近のバージョンを 動かすためには、 LXCFS もインストールする必要があります。

QEMU

仮想マシンを利用するには QEMU 4.2 以降が望ましいです。 それより古いバージョンは QEMU 2.11 までは動作報告がありますが、古いバージョンのサポートは将来の LXD のリリースで誤ってリグレッションが起きる可能性があります。

追加のライブラリー(と開発用のヘッダ)

LXD はデータベースとして dqlite を使用しています。そのために必要な カスタム版の sqlite3dqlite をビルドしセットアップするためには make deps を実行してください。

LXD は他にもいくつかの (たいていはパッケージ化されている) C ライブラリーを使用しています。

  • libacl1
  • libcap2
  • libuv1 (dqlite で使用)

ライブラリーそのものとライブラリーの開発用ヘッダ (-dev パッケージ)の両方を インストールしたことを確認してください。