UbuntuでオリジナルのLiveCDを作成するには、Ubuntu Customization Kit(UCK)(現時点の12.04ではエラーが出て不安定)や現在使っている環境を取り込むRemastersys(ISOイメージのファイルサイズが大きくなるので注意)などのツールがありますが、今回は11.10から導入された「ubuntu-defaults-builder」を使ってみます。

custom
TeX入りバージョンを作ってみました。これは1GB近くになってしまったので、LiveCDではなく、LiveDVDですね。この場合、仮想化ソフトのkvmを使って起動させています。


ubuntu-defaults-builderに関しては、Japanese Teamの水野さんが、Ubuntu Weekly Recipe:第196回 ubuntu-defaults-builderでRemix CDを作るで紹介されていますので、内容的にダブるところが多いですが、ここではデフォルトのテンプレートからの作成方法をみてみましょう。

ubuntu-defaults-builderのインストール

まず、ubuntu-defaults-builderを次のコマンドでインストールします。

$ sudo apt-get install ubuntu-defaults-builder

リポジトリの変更

ISOファイルの作成時にchrootが実行されますが、その際に利用されるリポジトリを国内のものを利用するよう、/etc/live/build.confを次のような内容に変更しておきます。
LB_PARENT_MIRROR_BOOTSTRAP="http://jp.archive.ubuntu.com/ubuntu/"
LB_PARENT_MIRROR_CHROOT="http://jp.archive.ubuntu.com/ubuntu/"
LB_PARENT_MIRROR_CHROOT_SECURITY="http://security.ubuntu.com/ubuntu/"
LB_PARENT_MIRROR_CHROOT_VOLATILE="http://jp.archive.ubuntu.com/ubuntu/"
LB_PARENT_MIRROR_BINARY="http://jp.archive.ubuntu.com/ubuntu/"
LB_PARENT_MIRROR_BINARY_SECURITY="http://security.ubuntu.com/ubuntu/"
LB_PARENT_MIRROR_BINARY_VOLATILE="http://jp.archive.ubuntu.com/ubuntu/"
LB_PARENT_MIRROR_DEBIAN_INSTALLER="http://jp.archive.ubuntu.com/ubuntu/"
LB_MIRROR_BOOTSTRAP="http://jp.archive.ubuntu.com/ubuntu/"
LB_MIRROR_CHROOT="http://jp.archive.ubuntu.com/ubuntu/"
LB_MIRROR_CHROOT_SECURITY="http://security.ubuntu.com/ubuntu/"
LB_MIRROR_CHROOT_VOLATILE="http://jp.archive.ubuntu.com/ubuntu/"
LB_MIRROR_BINARY="http://jp.archive.ubuntu.com/ubuntu/"
LB_MIRROR_BINARY_SECURITY="http://security.ubuntu.com/ubuntu/"
LB_MIRROR_DEBIAN_INSTALLER="http://jp.archive.ubuntu.com/ubuntu/"

テンプレートを作成する

ubuntu-defaults-builderでは、debパッケージのテンプレートを用意して、各種の設定を施した後、作成したdebパッケージを使って、ISOイメージを作成するという流れでカスタマイズを行います。テンプレートは次のコマンドで作成することができます。以下、独自に記述する部分は赤字で示してあります。

$ ubuntu-defaults-template ubuntu-defaults-vineuser

このコマンドで作成されるファイル群は、/usr/share/ubuntu-defaults-builder/templateというフォルダに入っているので、それをコピーしてもいいでしょう。

なお、日本語Remixのテンプレートが下記のサイトにあるので、wgetするか直接ダウンロードして展開すれば、簡単に日本語版のテンプレートが用意できます。

http://archive.ubuntulinux.jp/ubuntu/pool/main/u/ubuntu-defaults-ja/

最新版は、ubuntu-defaults-ja_12.04-0ubuntu1~ja4.tar.gzです。

ubuntu-defaults-templateコマンドで生成されるテンプレートと日本語Remixのテンプレートの違いは、ここのdiffを参照していただければだいたいわかると思いますが、以下、前者のテンプレートと日本語Remixのテンプレートで異なる部分を挙げておきます。

どこを変更すればどのようなカスタマイズできるのかが少しわかってくると思います。

変更する設定ファイル

以下、「[変更するファイル名] 変更内容」の書式で、テンプレートの変更点を挙げていきます。

[ i18n/language.txt ] 最終行に「ja」を加えて保存する。
[ i18n/langpacks.txt ] 最終行に「ja」を加えて保存する。
[ i18n/keyboard.txt ] 最終行に「jp」を加えて保存する。

[ depends.txt ] 最終行に下記のパッケージ名を加えて保存します。

libreoffice-l10n-ja
firefox-locale-ja
thunderbird-locale-ja
fonts-takao-pgothic
fonts-takao-gothic
fonts-takao-mincho
poppler-data
cmap-adobe-japan1
ibus-anthy
kasumi


※ ここに追加でインストールしたいパッケージを追記すれば、そのパッケージが入ったISOイメージを作ることができます。

[ debian/control ] 下記の行に、ubuntu-desktop-jaを追記します。

・変更前: Conflicts: ubuntu-default-settings
・変更後: Conflicts: ubuntu-default-settings, ubuntu-desktop-ja


[ hooks/chroot ] 最終行に下記のコマンドを加えて保存します。
fontconfig-voodoo -s ja_JP
wget -q https://www.ubuntulinux.jp/ubuntu-ja-archive-keyring.gpg -O- | sudo apt-key add -
wget -q https://www.ubuntulinux.jp/ubuntu-jp-ppa-keyring.gpg -O- | sudo apt-key add -
wget -q https://www.ubuntulinux.jp/sources.list.d/precise.list -O /etc/apt/sources.list.d/ubuntu-ja.list
apt-get update
apt-get upgrade --yes
apt-get clean

※ ここに記述したコマンドは、デフォルトのパッケージとdepends.txtに記載したパッケージが導入された後にchrootで実行されます。

[ webbrowser/bookmarks-menu.txt ] 下記の2行を追記します。

http://www.ubuntulinux.jp Ubuntu Japanese Team
https://forums.ubuntulinux.jp Ubuntu日本語フォーラム


※ Firefoxにブックマークを加えることができます。自分のブログなどを登録しておいてもいいでしょう。

以上で、日本語Remixと同等なものができます。


背景画像を変更する

このままでは、日本語Remixと変わらないので、少しアレンジして、デフォルトの壁紙を変更してみましょう。
[2012.05.31 修正済み]

[ debian/rules ] 下記の2行を追記します。
dh_installgsettingsの前のところはタブを入れてください。

override_dh_installgsettings:
    dh_installgsettings --priority=50


[ debian/ubuntu-defaults-vineuser.gsettings-override ]
このファイルはテンプレートにはないので、自分で作成して、下記の内容を記述します。ファイル名にはバージョン番号は不要ですので注意しましょう(ubuntu-defaults-vineuserの部分)。gsettings-overrideのファイル名の赤字部分は、ubuntu-defaults-templateコマンドで作成したフォルダ名に合わせておきます。

[org.gnome.desktop.background]
picture-uri='file:///usr/share/backgrounds/画像ファイル名'
color-shading-type='solid'
picture-options='zoom'
primary-color='#000000'
secondary-color='#000000'
show-desktop-icons=true
画像ファイル名は、/usr/share/backgroundsの中にあるものの中から選んで記述します。

※ オリジナルのものを使うには、どこかネット上に置いて、[ hooks/chroot ]に次のような感じで追記しておけばいいでしょう。

下記の2行を[ hooks/chroot ]へ追記
wget -q (画像のURL)
mv (画像のファイル名) /usr/share/backgrounds/(画像のファイル名)
gsettings set org.gnome.desktop.background picture-uri 'file:///usr/share/backgrounds/(画像のファイル名)'


※ このあたりは何か他の手段がないか検討したいところです。

テンプレートパッケージを作成する

テンプレートのカスタマイズが終わったら、テンプレートの最上位のディレクトリに移動して、dpkg-buildpackageコマンドでdebパッケージを作成します。

$ cd ubuntu-defaults-vineuser
$ dpkg-buildpackage -us -uc


※ 「debuild -us -uc」でも構いません。両者の違いは、この辺りのサイトに書かれています。

オリジナルのISOイメージを作成する

これで、テンプレート・ディレクトリの1つ上のディレクトリにdebパッケージができているはずですので、あとは、次のコマンドを実行すればISOイメージが作れます。

$ cd ../
$ sudo ubuntu-defaults-image --package ubuntu-defaults-vineuser_all.deb --components main,restricted,universe,multiverse


家の環境では、30分ほどかかりました。

課題

さて、できあがったISOファイルですが、パッケージを追加すると700MBを超えてしまい、CDには入りきらないかも知れません。その場合は、DVDに焼くなり、USBメモリにインストールするなどすれば使えると思います。デフォルトのパッケージで不要なものがあれば削除したいところですが、これを安全に行う方法は、まだよくわかりません。

また、作成したISOイメージで起動して、HDDへのインストールを行うと、追加したはずのパッケージがインストールされません。ISOイメージの中身をみたら、casper/filesystem.manifest-removeというファイルでremoveされていたので、ISOを展開し、filesystem.manifest-removeを書き換えた上で、ISOを固め直したら、削除されずにインストールされました。

これも何か他の方法があると思いますけど、まだよくわかっていません。

(この記事を書くまでに何度もやりなおしたので、結構大変でした...)
というわけで、Ubuntuの記事を書いている最中に、Fedora 17がリリースされてしまいました...orz