Alpine Linuxオフラインインストール用にUSBメディアに追加パッケージを追加することを最適化しますか?

Alpine Linuxオフラインインストール用にUSBメディアに追加パッケージを追加することを最適化しますか?

私たちは、組み込みx86コンピュータで独自のアプリケーションを実行するためにAlpine Linux用の自動インストーラを作成したいと思いました。私たちのアプリケーション設定には、ダウンロード可能なメディアにないパッケージが必要であり、それを独立してオフラインで実行する必要があります。必要な機能を実装しましたが、そのためにはUSBスティックに「プライマリ」と「コミュニティ」のストレージが必要です。

これまでISOモードでRufusを使用してISOイメージをUSBスティックに書き込んでから(書き込み可能にする)、イメージをUSBスティックにrsyncし、必要に応じてこのディレクトリを手動で追加することで/media/usb/alpineこの問題を解決しました。/etc/apk/repositoriesこれは素晴らしい作品です。

残念ながら、このダウンロード容量はほぼ20 GBに達します。これは、現在利用可能なUSBスティックからUSBスティックに手動でコピーするまでに長い時間(現在2時間)かかることを意味します。 SSD USBディスクは約20分かかります。

setup-apkcacheだから私は100MB未満のパッケージしか必要としませんが、setup-disk「sys」モード(ステージの後ろで実行)でローカルハードドライブにインストールする実験では、lbu package -キャッシュ内のそのパッケージを使用しないことがわかりました。ただし、すべてのパッケージがそのリストにリストされているリポジトリの1つに見つかると予想しています/etc/apk/repositories

APKキャッシュを使用するのが正しいアプローチですか?それとも私が間違った木を探しているのでしょうか?

答え1

後で参照できるようにSSEとTSLIBなしでQt5を再コンパイルする必要があるため、Alpine Linux aportsリポジトリをフォークし、3.14-stableブランチからローカルブランチを作成してDockerイメージからパッケージを再構築しました。

このドッカー画像はISOの構築にも非常に適していることがわかりました。必要に応じて追加のパッケージをscripts/mkimg.XXX.sh調整して追加するための新しい設定ファイルを作成することで、Gitlabで変更されたパッケージで新しいISOを数分でビルドし、アーティファクト用の公式パッケージリポジトリの固定内部イメージを使用して保存できます。これにより、私たちの目的に十分速い620MB ISOが生成されました。profile_extended$apks

時間が長ければ、必要なパッケージに基づいて Alpine Linux パッケージでカスタムペイロードを生成するので、ビルドスクリプトにそのパッケージを追加し、依存関係を透過的にインポートします。また、PXEネットワークから起動できるバージョンも開発中です。次回...


編集:Alpine Technical Steering Committeeは、2022年1月に、「最善の努力に基づいてi586を引き続き使用することを決定しました。 i686のみをサポートしている場合、一部のパッケージにはi686が必要な場合があります(たとえば、JITがある場合)。特定の使用法では、これは別々のコンパイルツリーを引き続き使用する必要があることを意味します。

https://gitlab.alpinelinux.org/alpine/tsc/-/blob/master/mines/2022-01-11.md

関連情報