バッケージ作成の推奨¶
以下は Incus のパッケージ作成者向けの推奨事項です。
以下の推奨に従うとさまざまな Linux ディストリビューションでより期待通りな経験を提供できるでしょう。
パッケージ¶
通常は、少なくとも incus
と incus-client
パッケージに分割するのが良いでしょう。
後者はデーモンやその依存物をインストールせずに incus
コマンドだけをインストールできるようにします。
さらに、fuidshift
、lxc-to-incus
、incus-benchmark
、incus-migrate
のような使用頻度の低いツールを incus-tools
パッケージに分離すると便利かもしれません。
グループ¶
2 つのグループを提供すると良いです:
incus-admin
はunix.socket
ソケットへのアクセスを許可し、Incus への実質的に完全な制御を許可します。incus
はuser.socket
ソケットへのアクセスを許可し、制限された Incus プロジェクトを利用できるようにします。
初期化スクリプト¶
以下は systemd
の使用を想定しています。
systemd
を使用しないディストリビューションでは似たような命名規則に従うのがよいですが、ソケットアクティベーションのような点は一部差異があるでしょう。
incus.service
はincusd
デーモンを起動・停止するメインのユニットです。incus.socket
はincus.service
ユニット用のソケットアクティベーションのユニットです。存在する場合、incus.service
は単体では起動しないようにします。incus-user.service
はincus-user
デーモンを起動・停止するメインのユニットです。incus-user.socket
はincus-user.service
ユニット用のソケットアクティベーションのユニットです。存在する場合、incus-user.service
は単体では起動しないようにします。incus-startup.service
はincusd activateifneeded
コマンドを使って必要であればデーモンの起動をトリガーします。さらにincusd shutdown
を呼んでホストのシャットダウン時にインスタンスを順番にシャットダウンします。
バイナリ¶
incusd
と incus-user
デーモンはユーザーの PATH
の通らない場所に置くのが良いです。
incus-agent
も同様で、デーモンの PATH
に存在する必要がありますが、ユーザーは利用できないようにしてください。
ユーザーに利用できるようにするべきメインのバイナリは incus
です。
これらに加えて、以下のオプショナルなバイナリも利用できるようにしてください:
fuidshift
(root のみに限定するべき)incus-benchmark
incus-migrate
lxc-to-incus
lxd-to-incus
(root のみに限定するべき)
Incus agent バイナリ¶
incus-agent
バイナリを提供するには 2 つの方法があります。
単一のエージェントのセットアップ¶
もっとも簡単な方法はincusd
のPATH
にincus-agent
を利用可能にしておくことです。
このシナリオではエージェントはシステムのプライマリアーキテクチャーのincus-agent
のスタティックビルドにするのがよいです。
複数のエージェントのセットアップ¶
別の方法として、incus-agent
バイナリの複数のビルドを提供し、複数のアーキテクチャーやオペレーティングシステムのサポートを提供することもできます。
このためには、INCUS_AGENT_PATH
環境変数をincusd
プロセスに設定しincus-agent
のビルドを含むパスを指すようにするとよいです。
これらのビルドはオペレーティングシステムとアーキテクチャーに応じた名前を付けてください。
例えば、incus-agent.linux.x86_64
、incus-agent.linux.i686
、incus-agent.linux.aarch64
です。
ドキュメント¶
ウェブ上のドキュメント¶
Incus はネットワークリスナーが有効(core.https_address
)な場合は、ドキュメントを自身で配信できます。
これを動かすためには、リリース tarball 内に含まれるドキュメントをパッケージの一部としてインストールし、INCUS_DOCUMENTATION
環境変数を通してそのパスを Incus に渡すのがよいです。
マニュアルページ¶
Incus 用に完全な manpage
のエントリーをそれ用に書いてはいませんが、 CLI からそれらを生成できます。
incus manpage --all --format=man /target/path
を実行すると各コマンド/サブコマンドごとに個別のページを生成します。
これは --help
で表示される内容と実質同じですので、ディストリビューションのパッケージングポリシーが全ての実行ファイルが manpages
を持つことを要求しない限りは --help
と help
サブコマンドに任せるのが通常はベストです。