DEXCS2022構想(1)リマスターツール

ubuntu-22.04 がリリースされた。DEXCS2022も当然このOS上で構築することになる。問題は、これまで使っていたリマスターツール(pinguybuilder)の最終更新が2019/8であったこと。このままでは新しいOS上で使えなくなるという心配があったが案の定であった。インストールさえ出来ない状況となった。

したがってubuntu-22.04上で、OpenFOAMやDEXCSランチャーの組み込み・動作確認以前に、このリマスターツールをどうしたら良いのかを考える事が最重要課題となった。ネット上では、pinguiybuilderの代替ツールを紹介するサイトなるものもあった。とはいうものこの情報も少々古かったし、リマスターのコンセプトもツールによって異なっていた。ひとつづつ調べてみた結果、上記サイトの一番下で紹介されていたCubicなるツールで、何とかなりそうな感触を得た。これまでのremastersysの流れで継承されてきたツールとは、isoイメージファイルの作成方法が大きく異なっていたので、備忘録として取り纏めておくことにした。

なお、あとで判った事だが、Cubicを使ってカスタムisoを作る方法として公開されている日本語情報サイトもいくつか存在していた(例1 例2)。内容的にはCubic本家のwikiページをほとんどそのまま訳して読みやすくしただけの感であるが、そちらから入っておれば、もう少し手っ取り早くたどり着けたと思う。また詳細は、これらのサイトで見れば良いので、ここでは要点のみに留めるのと、従来の作り方との違いについて中心に特記する。

Cubicインストール

    $ sudo apt-add-repository universe
    $ sudo apt-add-repository ppa:cubic-wizard/release
    $ sudo apt update
    $ sudo apt install --no-install-recommends cubic

Cubicは、Ubuntu22.04上にインストール&動作可能であったが、古いOSのマシンにインストールして使用することも可能。

isoイメージ作成法(従来方法との違い)

拙著「オープンCAEのためのDEXCS for OpenFOAMハンドブック」の付録Bに説明したように、従来方法は稼働中のLinuxシステムのファイル群が、以下のルールで新たに作成するisoイメージに組み込まれるというわかりやすいものであった。

  • /usr/, /opt/ 領域のファイルはそのまま
  • /etc/skel/ 以下に収納されたファイルが新たに/home/<ユーザー名>/以下に

その際に、isoイメージファイルには4GB以下というファイル制限がある為、通常は必要最小限のパッケージを組み込んだ仮想環境を構築して、それを上記ルールでそのままイメージ化する方法をとっていた。従来のisoイメージ化ツールは、この仮想環境の中で動く必要があった。

一方、Cubicでは、ベースとなるisoイメージファイル(今回は ubuntu-22.04-desktop-amd64.iso)を指定しておいて、このisoイメージファイルを使ってCubic独自の仮想環境を作成、仮想環境の中でファイルやアプリケーションを追加・削除した状態にして、これをそのままisoイメージとして作成するというものであり、Cubicそのものはubuntuであれば、OSのバージョンを問わない環境にて作業が可能である。

操作手順のイメージとして、仮想環境を立ち上げるまでを図1に、仮想環境内での作業が終わった後のisoファイルが完成するまでを図2に示しておいた。仮想環境内での作業要領は後述するが、それ以外はほとんどデフォルト設定のまま、緑色のボタンを順番に押していくだけである。

図1. プロジェクトフォルダ、ベースisoファイル指定から仮想環境の立ち上げまで

図1.中央の設定ファイル画面では多くの設定項目があるが、ベースisoファイルを指定すれば相応のパラメタが組み込まれるので、全てデフォルトのまま進めても構わない。

図2.不要アプリ削除からisoファイル作成まで

図2.不要アプリ(パッケージ)の削除から、isoイメージの完成までは、ほとんどデフォルト設定で、緑色のNextボタンを押していくだけで良さそうである。

問題は、Cubic独自の仮想環境の中で新たにファイルを追加したり、アプリケーションをインストールする方法が、通常の仮想環境での操作方法と異なるという点であった。基本は仮想環境の端末画面(図1.)が現れるので、この端末を使ってのコマンドライン操作になる。

パッケージのインストール方法

(図1.)仮想環境の端末上で、apt install <パッケージ名>でインストールする。全てrootでの作業になるので、sudoは不要である。但しデフォルト環境のままでは、UbuntuUniverseおよびMultiverseリポジトリが/etc/apt/sources.list中に定義されていないので、これを定義しておく必要がある。本家のマニュアル中では、nano というテキストエディタが使えるので、これを使って/etc/apt/sources.list を書き換える方法が紹介されているが、ベースマシンで別途用意したsources.listファイルを次項に説明する方法で、/etc/apt/以下にコピー収納すれば良い。

その他にも、インストールの過程でエラーが生じたりする事はあったが、エラーメッセージで検索すれば、CubicのQAページのどれか(たとえば、これ)に辿り着いて解決を得ることもできた。

ファイルのコピー方法

仮想環境の端末上で、コピー先のディレクトリに移動しておいて、ベースマシン上のコピーしたいファイル(またはフォルダ)を、Cubic画面上にドラッグ&ドロップする。そうすると、選択したファイル一覧が表示されたコピー画面が現れるので、Copyボタンを押せば、コピーが完了する。端末に戻って、lsコマンドで内容確認もできる。

図1.中央の設定画面に戻って、Testボタンを押せば、Cubicの仮想環境が起動して動作確認も可能であるが、かなり重い。個々のアプリをインストールした都度、Cubicの仮想環境上でパラメタ設定など確認・修正するのは現実的でなさそうである。Cubicとは別にVmplayerやVirtuauBoxの同一内容の仮想環境上で、パラメタ設定は済ませておいて、パラメタファイルをCubic仮想環境にコピーするのが良さそうである。

不要パッケージの削除

パッケージのインストールと必要なファイルのコピーが終了してNextボタンを押せば、パッケージの一覧画面(図2.)が現れる。不要なパッケージにチェックマークを付ければisoには組み込まれないということである。新たに追加したパッケージも確認でき、そこにはチェックマークは付いていないはずである。

最終的なisoのサイズを小さくするには極力不要なものを削除したいところであるが、デフォルトで既にいくつかチェックマークが付いたものもあって、何故そうなっているのか、またパッケージの名前だけで、それがどういう役割なのか分からないものも多いが、後述するようにファイルサイズはあまり気にする必要はないので、特に何も変更せずとも良い。

isoファイルのサイズ制限

isoイメージ作成において従来4GB以下というファイルサイズの制限があったのに対して、本Cubicによる方法では8TBまで可能になっている。つまり事実上ファイルサイズ制限が無くなったといってもよいので、前項(不要パッケージ削除)もデフォルトのままで進めるのを推奨とした次第である。

まとめと展望

Cubicは、従来のremastersysy系のリマスターツールとはツールコンセプトが違っていたので、コンセプトを体得するのに手間取ったが、仮想環境内での端末操作以外は非常に簡単に済んでしまい、なおかつisoイメージファイルサイズの制限が事実上無くなったのは嬉しい。

今後の作業は、Cubicとは別の仮想環境上でDEXCS2022を構築しながら、同等の内容をCubic仮想環境に反映していくことになろうかと思う。ファイルのコピーは手間が少々面倒になるが問題はなさそうである。問題はパッケージのインストールが2つの仮想環境で同じように出来るかどうかという点であるが、これはケースバイケースでやってみないとわからないであろう。若干の不安を抱きつつも、これよりDEXCS2022プロジェクトを開始することとする。

一方、isoイメージファイルのサイズ制限は無くなったといってよいので、この際、DEXCS2022 for OpenFOAM とは別に、DEXCS2022 for OpenCAE を作ってみても良いかな・・・と思うが、いかがであろう?

Share

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください