非公式
このページの内容
  1. 01アプリがプロジェクトから使うもの
  2. 02プロジェクトのレシピを使う新しいアプリ
  3. 03ビルド
  4. 04有効化して、ほかの場所へ持ち出す
  5. 05別のプロジェクト、またはなし
  6. 06ルール

自作レシピとライブラリのレシピによるカスタムアプリ

App Builder アプリは、ライブラリのレシピに加えて 1 つのプロジェクトのレシピを使えます。このガイドでは アプリ ページでアプリ termtools を作ります。はじめての自作レシピ のプロジェクトの cmatrix と、ライブラリの tmux と htop を使い、NAS で有効化してからエクスポートします。

  1. プロジェクト自作のレシピ
  2. 新しいアプリプロジェクトのレシピ
  3. レシピプロジェクトのものとライブラリのもの
  4. ビルドジョブ 1 つ
  5. 使う有効化、エクスポート

画像は Bucket & Code Server IDE のパネルのもので、各ステップをこのガイドの説明どおりに行っています。

01アプリがプロジェクトから使うもの

アプリは、ライブラリのレシピに加えて、最大 1 つのプロジェクトのレシピを使います。プロジェクト ページのプロジェクトは、種類にかかわらず、recipes/ フォルダーにレシピがあれば対象になります。ライブラリのレシピと同じ名前のプロジェクトのレシピは、ライブラリのレシピを置き換えます。ただし、置き換わるのは、このプロジェクトを使うアプリの中だけです。

02プロジェクトのレシピを使う新しいアプリ

アプリ ページで 新しいアプリ を押すと、最初に名前とプレフィックス、環境、対象、プログラムの動作先、リンクモードを決めます。アプリの名前は termtools にします。プレフィックスは /usr/app/termtools になります。環境には Ubuntu 24.04 builder を選び、対象はこの NAS、リンクモードは動的のままにして、レシピを選択 で先に進みます。

レシピの上にある プロジェクトのレシピ には、レシピを持つプロジェクトと なし:ライブラリのみ が並びます。cmatrix を選びます。すると一覧には、まずプロジェクトのレシピがプロジェクトの名前の下に プロジェクト の印付きで表示され、ライブラリのレシピは レシピライブラリ の下に表示されます。ライブラリのレシピを置き換えるプロジェクトのレシピには ライブラリの … を置き換えます と表示され、… の部分には置き換えられるレシピのバージョンが入ります。

新しいアプリ、レシピ: プロジェクトのレシピは cmatrix。レシピライブラリの上に、プロジェクトの印が付いた cmatrix 2.0

プロジェクトのグループで cmatrix に、ライブラリのグループで tmux と htop にチェックを入れます。検索ボックスで見つけられます。ビルド順序 には、それらが必要とするレシピが追加され、どのレシピがそれを必要としているかが示されます。確認 にはすべての選択が並び、プロジェクトのレシピ もその中にあります。作成してビルド でアプリが作られ、ビルドが始まります。

03ビルド

アプリのページでは、ビルドの進み具合をレシピごとに確認できます。アプリの名前の下には プロジェクト cmatrix のレシピ と表示され、developer にとってはプロジェクトへのリンクになっています。ビルドジョブはプロジェクトのレシピを開始時に 1 回だけ読み、何を読んだかをログに記録します:

recipes of the project cmatrix, read at the job's start: 1 (cmatrix)
ビルドされたアプリ termtools: 名前の下に「プロジェクト cmatrix のレシピ」。ncurses、cmatrix、libevent、tmux、htop が合格

その後に保存したプロジェクトのファイルは、次のビルド (アプリのページの 再ビルド) まで反映されません。

04有効化して、ほかの場所へ持ち出す

有効化 (管理者用) を押すと、/usr/app/termtools が、合格した最新のビルドへのリンクになります。プログラムは、NAS 上でそこから実行できます:

/usr/app/termtools/bin/cmatrix
/usr/app/termtools/bin/tmux -V

ダウンロード では、ビルドをアーカイブとしてダウンロードできます。同じアーキテクチャーの NAS で、同じプレフィックスに展開して使います。QPKG としてエクスポート は、QDK がインストールされていれば (ツールチェーン、QNAP タブ) 管理者が使え、ビルドをコード署名なしの QTS パッケージにします。この NAS のみ 向けにビルドしたアプリはエクスポートされません。パッケージに署名して提供する方法は 独自の App Center で説明しています。ゼロから作る Transmission では、1 つのプログラムを最初から最後までたどります。何も設定していない NAS から始めて、署名済みの QTS パッケージをインストールし、ブラウザーで応答するところまで進めます。

05別のプロジェクト、またはなし

アプリのページの 変更 で、プロジェクトのレシピ を設定し直せます。別のプロジェクトか、なし:ライブラリのみ です。選択済みのレシピが新しい一覧にない場合は、この一覧にないため除外:cmatrix のようにフィールドの下に名前が表示され、その選択が続く間はアプリから外れます。変更を保存 を押しても、アプリのファイルは変わりません。変更は次のビルドで反映されます。

termtools の変更: プロジェクトのレシピを「なし:ライブラリのみ」に設定し、「この一覧にないため除外:cmatrix」の行

06ルール

  • アプリは、フォルダーの名前でプロジェクトを見つけます。フォルダーの名前を変えたり削除したりすると、アプリのビルドはプロジェクト「cmatrix」はありません。というメッセージで拒否され、その名前のままの変更も拒否されます。変更 では、フォルダーの新しい名前か なし:ライブラリのみ を選びます。
  • 問題のあるプロジェクトのレシピは除外され、フィールドにその理由が表示されます。同じ名前のライブラリのレシピが代わりに使われることはありません。
  • プロジェクトのレシピを見られるのは developer だけです。viewer にはアプリとそのビルドが見え、viewer がアプリのページを開くと、ビルド順序は表示されないという案内が出ます。
  • アプリを作るには developer ロールが必要です。有効化、無効化、QPKG としてエクスポート は管理者の操作です。