Qbilinux 日記

Linux に関係することだけではなく,最近は一般的なコンピュータやガジェット関係についても記載してます.

Plamo Linux の野良パッケージ作成(その38): パッケージの修正とかインストーラ,initrd の修正

ぼちぼちと Plamo のソース一式を修正して,野良パッケージ (野良ディストリビューション?) を作成.

いつまで続くのか.

いじってる野良パッケージのビルドスクリプトhttps://github.com/t-matsuki/Plamo-mysrc,バイナリは http://circle2.org/pub/ にあります.

パッケージの更新が落ち着いてきたので,インストーラーの方もいじってます.

パッケージ周りは...

ビルドに失敗しているパッケージ類で個人的に使っていない物をどんどん削除していってます.Canna とか skkfep, kinput2, 親指シフト関係など.個人的に使って無くてもコンパイルエラーになっていない物ははあえて削除せずに残してあります.下手に削除すると依存関係が壊れる可能性もあるので.

以前,firefoxコンパイルが通らないって書いた件は cargo が nspr のヘッダを見つけられなかった症状でした.lfsfirefox ビルド方法を参考にビルドスクリプトを修正したところ,無事,コンパイルできるようになりました.lfs のビルド方法は http://www.linuxfromscratch.org/blfs/view/cvs/xsoft/firefox.html にあります.通らない原因の説明も lfs のページに書いてあるのでここでは省略しますね.他にも日本語ロケールを同梱する形でビルドすると python がエラーを吐いちゃうようになってしまったので,日本語ロケールは削除してしまいました.firefox 57 からエンジンが大きく変更された影響が結構ある感じ.ロケール周りでこける原因は気が向いたら調べようかとは思ってます.

あとは KDE まわりがまともに動くようになれば,とりあえず一通り使える環境になるかなぁといった感じ.

32bit 環境とかラズパイの方は若干問題あるけど,まぁ,後回しと言うことで.

話戻してインストーラーの件.

Plamo Linuxインストーラーは isolinux/initd.gz 中の usr/lib/setup 以下に入ってるのでそれを修正します.

とりあえず,インストーラーの漢字コードを UTF-8 に変更して,それとつじつま合うように関連ツールの修正とか,一部パッケージの修正とか,インストーラカーネルの差し替えとか,grub.cfg や isolinux.cfg などを修正.Plamo ではパッケージ内で /var/log/seup 以下にファイルを置く形にすると,インストーラーがそれらのファイルを読み込んでメニュー表示するので,インストーラーのメニューから設定できるようになります.なので,単純にインストーラだけではなく,関連パッケージの修正が必要になります.grub とか lilo, timezone, ネットワーク周りの設定などがこの形で行われていますね.

その他には slackware 由来のパッケージ管理ファイルとして maketag とか tagfile.*, *.desc, disk* なんてファイルもありますが,それらの漢字コードとかも変更したいので,これらのファイルを生成するためのツールも修正したりとか.

あ,一応,initrd をいじるときの方法を簡単にメモとして書いておきます.

initrd.gz は単純に cpio + gzip で固められているだけなので,適当なディレクトリを作成して

% mkdir (適当なディレクトリ)
% cd (適当なディレクトリ)
% zcat (どっか)/initrd.gz | cpio -im

で展開.ごにょごにょといじってから

% find . | cpio -o --format=newc | gzip -c9 > (どっか)/initrd.gz

で圧縮するって感じになると思います.

本当は,各種設定を何らかのファイルに記述して,そこから initrd 自体を自動で作成するツールとかあればいいんだけど,現状は完全な手作業ですね.時間があれば作ろうかなとは思ってますけど,いつになることやら.

一通りインストーラーをいじってから試しにクリーンインストールしてみましたが,いろんなところで不具合発生.インストールは出来るんだけど,インストール後の再起動時に init スクリプト中でエラーになってフリーズ.うーん.いろんなコマンドのつじつまが合わなくなって実行に失敗してるものがポツポツある様子.地道に直していくしかないですね.

こんな状態ですけど,バックアップもかねて2〜3日中に公開バイナリの方は更新しておこうかと思います.

まぁ,とりあえずそんなところです.はい.