指定された/usrおよび類似のディレクトリを使用してflatpakランタイムを作成します。

指定された/usrおよび類似のディレクトリを使用してflatpakランタイムを作成します。

私がしたいのは、/usrプレゼンテーション/my/usrやホストへのシンボリックリンクとして機能するflatpakランタイムです/usr。このように、既存のコンテナとホストランタイムは、flatpakほど管理されていないアプリケーションで使用できます。または、依存するflatpakランタイムが大きすぎるため、必要がない場合があります(たとえば、同じライブラリの2つのコピー)。1

ランタイムビルドは「推奨されない」ため、ドキュメントはほとんどなく、特定の環境(fedora、apertis)用にビルドされたツールのみがあります。それでは、関連文書はどこで見つけることができますか?同様のプロジェクトがすでに存在していますか?

PS:このような場合、flatpakを使用することは移植性とは関係ありませんが、ここでのサンドボックスは大きな利点です。

ベストアンサー1

これはあなたが探している答えではないかもしれませんが、私が見つけた唯一のガイドはArch用のデフォルトのランタイムを作成することです。

https://wiki.archlinux.org/title/Flatpak

セクション4以降:

カスタム基本ランタイムの作成

pacmanを使用して、カスタムArchベースのデフォルトランタイムとFlatpak用のデフォルトSDKを作成できます。その後、それを使用してアプリケーションをビルドしてパッケージ化できます。これはデフォルトorg.freedesktop.BasePlatformorg.freedesktop.BaseSdkランタイムを使用するための個人的な選択肢です。

flatpakに加えてfakerootもインストールする必要があり、パックマンフックをサポートするにはfakechrootもインストールする必要があります。

まず、ランタイムとアプリケーションを構築するためのディレクトリを作成することから始めます。

$mkdirマイフラットパックビルドディール
$CDマイフラットパックビルドディール

その後、ランタイムベースのプラットフォームを構築するためのディレクトリを準備できます。ファイルサブディレクトリには、/usr後でサンドボックス内のディレクトリが含まれます。したがって、/usr/share通常のパスを介してArchのデフォルト値にアクセスし続けるようにシンボリックリンクを作成する必要があります。

$mkdir -p私のランタイム/ファイル/var/lib/pacman
$タッチ私のランタイム/ファイル/.ref
$ln -s /usr/usr/share私のランタイム/ファイル共有
$ln -s /usr/usr/include私のランタイム/ファイル/含む
$ln -s /usr/usr/local私のランタイム/ファイル/ローカル

ホストオペレーティングシステムのフォントをArchランタイムで使用できるようにします。

$mkdir -p私のランタイム/ファイル/usr/共有/フォント
$ ln -s /実行/ホスト/フォント私のランタイム/files/usr/share/fonts/platpakhostfonts

pacman.confパッケージをインストールする前に、ランタイムに合わせてパッケージを調整する必要があり、おそらく調整したいと思います。/etc/pacman.confビルドディレクトリにコピーし、次のように変更します。

  • CheckSpaceディスクスペースを確認するためにルートファイルシステムを検索するときに、pacmanがエラーについて文句を言わないように、このオプションを削除してください。
  • 不要なカスタムストレージとホストシステムにのみ必要な設定を削除してくださいIgnorePkgIgnoreGroupNoUpgradeNoExtract

次に、ランタイムパッケージをインストールします。

$fakechroot fakeroot パックマン -Syu --root私のランタイム/ファイル --dbpath私のランタイム/files/var/lib/pacman --config pacman.conf 基本
$mvpacman.conf私のランタイム/ファイル/etc/pacman.conf

設定ロケール編集用myruntime/files/etc/locale.gen。その後、ランタイムロケールを再生成します。

$fakechroot chroot私のランタイム/filelocale-gen

デフォルトのSDKはデフォルトのランタイムで作成でき、pacmanを実行するために必要なビルドパッケージとアプリケーションを追加します。

$cp-r私のランタイム開発キット
$fakechroot fakeroot pacman -S --root mysdk/files --dbpath mysdk/files/var/lib/pacman --config mysdk/files/etc/pacman.conf 基本開発 fakeroot fakechroot --needed

ランタイムとSDKのメタデータを挿入します。

私のランタイム/メタデータ
[Runtime]
name=org.mydomain.BasePlatform
runtime=org.mydomain.BasePlatform/x86_64/2016-06-26
sdk=org.mydomain.BaseSdk/x86_64/2016-06-26
mysdk/メタデータ
[Runtime]
name=org.mydomain.BaseSdk
runtime=org.mydomain.BasePlatform/x86_64/2016-06-26
sdk=org.mydomain.BaseSdk/x86_64/2016-06-26

現在のディレクトリのローカルストアにデフォルトのランタイムとSDKを追加します。 「My Arch Base Runtime」や「My Arch Base SDK」などの適切なコミットメッセージを提供する必要があるかもしれません。

$ ostree init --mode archive-z2 --repo=。
$EDITOR="nano -w"ostree コミット -b ランタイム/org.mydomain.BasePlatform/x86_64/2016-06-26 --tree=dir=私のランタイム
$EDITOR="nano -w"ostree コミット -b ランタイム/org.mydomain.BaseSdk/x86_64/2016-06-26 --tree=dir=mysdk
$ostree 要約 -u

ランタイムとSDKをインストールします。

$flatpak リモート追加 --user --no-gpg-verify myarchos ファイル://$(pwd)
$flatpak install --user myarchos org.mydomain.BasePlatform 2016-06-26
$flatpak install --user myarchos org.mydomain.BaseSdk 2016-06-26

おすすめ記事