archiso-gnome
archisoでGNOMEデスクトップ環境のライブISOイメージを作成してみました。
Fluentテーマを利用していてすっきりした見た目になっています。
環境
- Arch Linux
- archiso 83-1
構築
一旦、カスタマイズ前の状態でISOを作成してみます。
- archisoをインストール
sudo pacman -S archiso
- プロジェクトディレクトリを作成
cp -r /usr/share/archiso/configs/releng/ archiso-gnome
cd archiso-gnome - ISOをビルド
sudo rm -rf work
time sudo mkarchiso -v -o ./ ./N100 CPUで7分30秒で生成し、サイズは1.2GB
- VirtualBox等で生成されたISOが起動するか確認する
カスタマイズ
カスタマイズ方針
- ブートローダはGRUB
- デスクトップ環境はGNOME
- GNOME Shell拡張機能を有効化
- テーマはFluent
- できるだけパッケージを利用する(後でアップデートできるように)
- GUIインストーラCalamaresを有効化(調査中)
カスタムローカルリポジトリ
AURパッケージや独自パッケージをインストールするためにカスタムローカルリポジトリを作成します。
リポジトリディレクトリの作成
sudo mkdir -p /opt/custom-repo/x86_64
sudo chown -R $USER:$GROUP /opt/custom-repoパッケージファイルの準備
インストール済のAURパッケージを更新します。paru
AURヘルパーparuのキャッシュディレクトリ
~/.cache/paru/clone/
配下から過去にインストールしたパッケージファイルを抽出できます。最新バージョンを利用します。例 extension-manager-0.6.3-3-x86_64.pkg.tar.zst
fluent-cursor-theme-git-2025.02.26.r6.ge8ac55a-1-any.pkg.tar.zst
fluent-gtk-theme-2025.04.17-1-any.pkg.tar.zst
fluent-icon-theme-git-2025.02.26.r6.ge8ac55a-1-any.pkg.tar.zst
gnome-shell-extension-blur-my-shell-68-1-any.pkg.tar.zst
gnome-shell-extension-openweatherrefined-139-1-any.pkg.tar.zst
paru-bin-2.0.4-3-x86_64.pkg.tar.zst
ttf-hackgen-2.10.0-1-any.pkg.tar.zst
yay-12.5.0-1-x86_64.pkg.tar.zstパッケージファイルのコードを修正したい場合
例えば拡張機能のmetadata.jsonを修正したい場合paru -G gnome-shell-extension-openweatherrefined
cd gnome-shell-extension-openweatherrefined
makepkg -sFile-Rollerでソースアーカイブ(*.tar.gz)を開いてmetadata.jsonを修正して上書き保存
makepkg -f -A --skipchecksums
パッケージ(*.pkg.tar.zst)が生成される。
インストール確認する。sudo pacman -U *.pkg.tar.zst
パッケージファイルの配置
パッケージファイル*.pkg.tar.zst
をカスタムリポジトリディレクトリ/opt/custom-repo/x86_64/
に配置します。リポジトリデータベースの生成
cd /opt/custom-repo/x86_64/
rm custom-repo.*
repo-add /opt/custom-repo/x86_64/custom-repo.db.tar.zst /opt/custom-repo/x86_64/*.pkg.tar.zstカスタムローカルリポジトリの参照設定
./pacman.conf [custom-repo]
SigLevel = Optional TrustAll
Server = file:///opt/$repo/$arch
インストールするパッケージの指定
インストールしたいパッケージ名を設定ファイル./packages.x86_64
に追記する。
インストールするファイルの配置
インストールしたいファイルをディレクトリ./airootfs/
配下に格納する。
- 壁紙の場合
./airootfs/usr/local/share/backgrouns/
- ユーザのホームディレクトリに配置したい場合(
.bashrc
等)./airootfs/etc/skel/
dconf設定
- dconfデータベースの作成
./airootfs/etc/dconf/
配下にgdmとuserのデータベースを作成する。 - ユーザ設定
./airootfs/etc/dconf/db/local.d/
に設定ファイルを格納する。
- 背景画像(org/gnome/desktop/background)の設定
- インタフェース(org/gnome/desktop/interface)の設定
- ウィンドウボタン(org/gnome/desktop/wm/preferences)の設定
- GNOME Shell(org/gnome/shell)の設定
拡張機能の有効化、お気に入りアプリの指定、ツアーのスキップ 等 - 各GNOME Shell拡張機能(org/gnome/shell/extensions/***)の設定
現在の設定値の確認は
dconf-editor
設定値のエクスポートはdconf dump <パス>
ISO生成
- ISOをビルド
sudo rm -rf work
time sudo mkarchiso -v -o ./ ./N100 CPUで24分で生成し、サイズは2.7GB
TODO
- ソースアーカイブ内ファイルの差し替え手順整理、コマンド化
tar -tvf openweatherrefined-v139.tar.gz | grep metadata.json
tar -xvf openweatherrefined-v139.tar.gz gnome-openweather-139/metadata.jsongnome-openweather-139/metadata.json "shell-version": [ "45", "46", "47", "48" ],
tar -uvfz openweatherrefined-v139.tar.gz gnome-openweather-139/metadata.json
- GUIインストーラの組み込み
- 構築手順整備
- GitHubにプロジェクトを登録
- 生成したISOファイルをどこかに配置
- CI
- サイズ最適化(パッケージ削減)
- 起動速度最適化
- 天気の拡張の比較/選択
- 電源アイコンの非表示(Just Perfectionかdconfで)