Qbilinux 日記

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

Qbilinux 開発について(その53): lxc のパッケージも作成して Plamo コンテナで動作チェック

ぼちぼちと Plamo Linux 6.x のソース一式からブランチして,Qbilinux という linux ディストリビューションを作成.

いつまで続くのか.

いじってる Qbilinux のホームページは https://qbilinux.org/ に,ビルドスクリプトは https://github.com/qbilinux/qbilinux,バイナリは https://qbilinux.org/pub/ 以下にあります.

前回までは docker をいじっていましたが,一段落.

少し docker 用のパッケージビルドスクリプトを調整して,x86_64 環境でパッケージを作り直しました.

公開している qbilinux-current の方も更新してあります.https://qbilinux.org/pub/qbilinux-current/x86_64/contrib/Virtualization/docker.txz/ のあたりね.aarch64 の方は...もうしばらくお待ちください.

...

ついでに lxc のパッケージも作成しようかなと x86_64 環境上で作業.

Plamo 6.x のビルドスクリプトを持ってきて適当に修正.一応,Plamo 7.x もどうなっているかなと思って少し見たら,なんか plamo 用のコンテナ作成テンプレートにパッチが当たっているようだったのでそのあたりのパッチファイルを拝借.

で,作成後に lxc パッケージをインストールして動作確認.

とりあえず plamo のコンテナを作ってみようとしたら lxc-create 途中でこける.むむ....

追っかけていったら Plamo 7.x のパッケージを持ってきた後で installpkg するところでエラーを吐いて異常終了しているらしい.そのためにコンテナのベースとなる rootfs が作成できないっぽい.

色々と試行錯誤してみたら,どうやら LANG が C じゃないと installpkg でエラーになるみたいだな....ってことで, https://github.com/qbilinux/qbilinux/commit/1c6206f24832bcc17628f3cce6d29b847b0fc4a9#diff-93c4ec3da5e90304aa0236cf93289cc3 な感じのパッチを作成.これで root アカウントで問題なく Plamo 7.x のコンテナが立ち上がって動作することが確認できました.

あとは lxc-plamo の中で installpkg する前に PATH を $dlcche/sbin:$PATH に切り替えているけど,$dlcche/sbin/installer 以下も追加した方が良いんじゃないかなぁとも思ったけど,あんまり知識ないので機会があるときに Plamo 方面で聞いてみようかな.

このあたりって Plamo 上で lxc を動かす場合には問題なく動作しているのかな?まぁ,実作業に使われているみたいなので,問題ないんだろうなとは思っていますけど....

そんな感じで lxc も簡単ですけど動作確認できたので x86_64 環境のパッケージを https://qbilinux.org/pub/qbilinux-current/x86_64/contrib/Virtualization/lxc.txz/ 以下に置いておきました.その他のアーキ用パッケージは追って作業します.

それにしても,久しぶりに lxc を使うと色々とはまってしまいました.

すっかり lxc 関連のコマンド類の使い方を忘れてしまってる....

他にも lxc-start のデフォルト挙動がいつの間にか変更になっているのに気づかずはまってしまいました.最初,フォアグランド動作させようとして

% lxc-start -n plamo

ってやっても普通にコマンドプロンプトに戻ってきてしまったので,「なぜ?」って.もう一回実行しようとしたら,すでに実行してますってメッセージが出るし,余計「なぜ?」って.

% lxc-ls -f

でステータスを見て初めてデフォルトでバックグランド動作するように変更になっていることに気がつきましたが,全く知らなかったので少し悩んでしまいました.

あとは,lxc とは関係ない話ですけど,Plamo コンテナをフォアグランド動作しようとして

% lxc-start -n plamo -F

したら login プロンプトになるけど,「何のアカウントでログインすれば良いんだろうなぁ?」と.ちょっと調べてもわからなかったので,とりあえず先送り.Plamo 7.x 系列にはまったく追いつけてないのでインストールして少しいじってみないとダメかなぁとも思っていたり.

これで Plamo の lxc コンテナが動作するようになってので,このコンテナの上で環境を整えれば Plamo 用のパッケージング作業もできるってことかな?少し余裕が出てきたら試してみようかな.

また Qbilinux 用のテンプレートも作っておきたいなとは思いますが...,優先度はそれほど高くないので先送り.

他にも debootstrap とか zypper, yum なんかを debian や SUSE, CentOS 方面から持ってくれば,Qbilinux 上の lxc 上でも debian や SUSE, CentOS なんかのコンテナ作成とかできるのかなぁとか色々と思ってみたり.少し各ディストリビューション用のテンプレートファイルの中を追っかけてみないと,どのコマンドが必要はわからないんだけどね.まぁ,このあたりも興味はあるけど先送りかな.

そんな感じで Qbilinux 用の lxc パッケージも作成できたので今後は同梱する予定.

パッケージ作成は私の中では一段落したので,これからはインストーラー周りをメインに触っていこうと思っています.(毎回同じようなことを言っていますが,今度こそは...)

簡単ですけど,lxc のパッケージを作成して,動作チェック用に Plamo 7.x のコンテナを動作させてみた話でした.