Qbilinux 日記

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

Plamo Linux の野良パッケージ作成(その50): 公開バイナリとインストーラー,ARM 用バイナリ

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

いつまで続くのか.

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

http サイトに置いてあるバイナリイメージですが,誤って消してしまったために復旧作業をしていましたが,使っていた rsync スクリプトがバグってて何度も全部消してしまうことを繰り返してしまいました.そのため,時間がかかりましたが,ようやく復旧できました.

参考までに,rsync スクリプトのバグですが,hoge というディレクトリ全体を同期する際に

rsync -av --delete hoge/ xxx@webserver:/home/xxx/www/pub

ってやってしまってました.転送元ディクレクトリ名の最後に / をつけてしまっていたんですね.これだと,hoge 以下のディレクトリと /home/xxx/www/pub 以下を比較して,かつ,--delete を付けているために hoge 以下に存在しないディレクトリを webserver からバッサリ削除してしまうんですよね.

本来は hoge を pub 以下に転送したいので,ディレクトリ名に / を付けずに

rsync -av --delete hoge xxx@webmacine:/home/xxx/www/pub

とやるのが正解ですね.はい.

コマンドラインからファイル名・ディレクトリ名補完でコマンドを叩いて,それをそのままスクリプトにコピペしてたのでミスってしまいました....

そのうえ,iso イメージが結構でかいのでアップロードに時間がかかるのと,rsync + ssh で手元のファイルと同期させているのですがその iso ファイルのアップロード途中に接続がタイムアウトで切れていることが多く,思うようにアップロードできなかったという理由もあって思ったよりも手間がかかってしまいました.ふう.

一方,インストーラについてですけど,スクリプトを使って全自動で作り上げるような形にしようとしていましたが,ちょっと時間がかかりそう.

Plamo の一部バージョンで使っていたインストーラー作成スクリプト修正した物を github の方に上げてはいるんだけど,まだまだまともに動作しないレベルなんだよね.とりあえず手作業で作業することにして,スクリプトで作り上げるのは今後の課題に回そうかなと思っています.

さらに ARM 用バイナリについて.

x86/x86_64 と ARM のビルドスクリプトを共通にするために,ARM に対して行っていた修正を x86/x86_64 側とマージして,更新されたビルドスクリプトを使って再び ARM バイナリを作り直しています.

ビルドスクリプトを実行して放置しているだけなので,手間はかからないんですけど,コンパイル時間が結構かかります.コンパイルにラズパイ3を使っていますが kernel のビルドには 8時間くらい.gcc が 20時間 くらい.さらに大きな llvm とかは1日じゃ終わらないくらいの時間がかかってますね....

たまに全ビルドすると相当時間がかかるので,x86 環境にクロス環境を作った方が良いんだろうなぁとは思ってるんだけど,全ビルドってたまにしかやらないのでどうしても実機上でやってしまってます.少し前に x86 上で Qemu の ARM 環境を試してみた顛末は書きましたが,それっきりその環境も放置状態なんだよな.:-)

今回はバージョン番号をリセットしたのと,ARM の Hard FP 対応 & x86 環境とのマージのために仕方なく全ビルドしてるんだけど,出来れば ARM 環境上での全ビルドはあまりやりたくない作業ですね.ビルドしてエラーでこけてる物を確認&調整って作業だけで2週間〜3週間くらいはかかりそうな感じ.まぁ,ほとんどの時間がコンパイルが終わるのを待ってるだけなんだけどね.

まぁ,ぼちぼちといじってますが,ARM 環境のビルドが終わって,インストーラーがある程度まともになった時点でちょっと締める予定です.

以上,そんなところです.