
私がしたいのは、/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.BasePlatform
とorg.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がエラーについて文句を言わないように、このオプションを削除してください。- 不要なカスタムストレージとホストシステムにのみ必要な設定を削除してください
IgnorePkg
。IgnoreGroup
NoUpgrade
NoExtract
次に、ランタイムパッケージをインストールします。
$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