Fedora Live CD を作成する
2006年の12月、Fedora Linux ディストリビューションは、最初の正式な Live CD をリリースしました。この Live CDは、アプリケーションをインテリジェントに選択したことによって、Fedora の最も優れた特徴を見事に表現しています。この Live CD は、多くのアプリケーションの他にいくつかのゲームを含んでいたり、Compiz3D デスクトップを使用していたり、また非英語圏のユーザーにも利用できるようになっていたりします。しかし私が注目したのは、David Zeuthenによる livecd tools でした。このツールを利用すると、Fedora をベースとする Live CD の作成や管理がいとも簡単にできるのです。
Zeuthen は Pilgrim の開発者です。Pilgrim は、OLPC (One Laptop Per Child) プロジェクト (「参考文献」に詳細情報へのリンクがあります) のための、USB フラッシュ・ドライブから実行できるシステム・イメージを作成します。Fedora LiveCD の作成に使用される livecd tools は Pilgrim を Python でリライトしたものであり、Red Hat EnterpriseLinux や CentOS、その他下流の Fedora ディストリビューションから Live CDを作成するために使用することができます。
独自の Live CD の作成に取りかかる前に、Fedora リリースがどのように構成され、配布され、維持管理されているかを理解する必要があります。Fedoraプロジェクトはパッケージを、公開アクセス可能な 2 つのリポジトリーに分けて維持しています。正式な Fedora 開発者によって維持管理されるリポジトリーは「core」リポジトリーと呼ばれ、コントリビューターやコミュニティーによって維持管理されるリポジトリーは「extras」リポジトリーと呼ばれています。リポジトリーは単なるパッケージの集合です。coreリポジトリーと extras リポジトリーの他に、Livna や FreshRPM など、いくつかのサードパーティー製のリポジトリーがあります。
Fedora Core ディストリビューションは core リポジトリーの全パッケージを含んでおり、最新版は Fedora Core 6 です。最初の正式なFedora Live CD は、Fedora Core 6 のパッケージと extras リポジトリーをベースにしています。livecd toolsは Fedora のextras リポジトリーに含まれるように既にプロジェクトに提出されています。(extras リポジトリーは Fedora7 がリリースされるまでには core リポジトリーにマージされる予定です。)
なぜ livecd tools は特別なのか
Live CD を作成する上で livecd tools を使う最大の利点は、livecd tools の設計ではツールと Live CD とが分離されていることです。LiveCD を作成するために必要なものは、一連の構成ファイルのみです。これらの構成ファイルは、Live CD 上に必要なパッケージのリストを含み、またLive CD が起動した時に発生するシステム構成のタイプを記述します。
カスタムの Live CD を管理する人に便利なように、こうした構成ファイルは RPM としてパッケージされ、独自のリポジトリーに置かれます。Fedoraディストリビューションとそのリポジトリーのバージョンが上がるのに合わせて、これらの構成ファイルを更新し続けることで、関連するパッケージを引き出すことができます。
Zeuthen は、このような RPM パッケージを 3 つ用意しており、いずれもカスタムの Live CD のベースにすることができます。これらのRPM は、派生バージョンの作成を支援する継承構造をとっています。fedora-livecd packageはユーザー・インターフェースを持たない最小限の Live CD です。fedora-livecd-gnome パッケージは fedora-base パッケージをベースにし、GNOME デスクトップを加えたものです。fedora-livecd-desktop パッケージは fedora-gnome パッケージをベースに構築されたもので、GNOME デスクトップにアプリケーションやその他のものをたくさん追加しています。
図 1 は Zeuthen によるものですが、このことをもっとうまく説明しています。
図 1. livecd tools のパッケージ間の関係
また Zeuthen は、将来他の正式な Fedora SIG (Special Interest Group) が、こうした RPM から派生した独自のディストリビューションを作成する際にも、これが役立つかもしれないと述べています。
図 2. 考えられる派生パッケージの構成
これは少し曖昧に思えるかもしれませんが、実際に皆さんが自分でいじってみると、この方法の利点を実感できるはずです。
上に戻る
ベースを設定する
最初のステップは、Zeuthen の Fedora ホームページから livecd-tools RPM を入手することです。単純に livecd-tools-001-1.i386.rpm をダウンロードし、次のようにインストールします。
リスト 1. Live CD tools をインストールする
$ su - |
これで livecd-creator
コマンドが使えるはずです。このコマンドを何もオプションを付けずに呼び出すと、単純なコマンド・リストが得られます。
画像のページファイルは、ノートンゴーストでない
リスト 2. livecd-creator コマンドに用意されたオプション
$ livecd-creator No packages specified. usage: livecd-creator [--help] [--repo= |
core パッケージのローカル・リポジトリーを作成する
また、カスタム Live CD に入れたいと考えるツールの RPM にもアクセスできる必要があります。高速インターネットに接続されていれば、livecd-creator
が、そうした RPM とそれらが依存するパッケージを、Live CD を作成する前にダウンロードしてくれます。別の方法としては、FedoraCore 6 のインストール CD あるいは DVD からすべてのパッケージをコピーし、ローカルの「core」リポジトリーを作成する方法があります。ローカル・リポジトリーを作成するためには、createrepo toolが必要です。
リスト 3. createrepo tool をインストールする
# wget -c http://tqmcube.com/files/createrepo-0.4.3-5.1.noarch.rpm # rpm -ivh createrepo-0.4.3-5.1.noarch.rpm |
まず Core 6 の 5 枚の CD あるいは 1 枚の DVD からすべての RPM をコピーし、次に createrepo tool を使って、ローカル・リポジトリーを作成します。
リスト 4. ローカル・リポジトリーを作成する
# mkdir /var/www/html/repo/core/ # cp |
この最後のコマンドは完了するまで少し時間がかかりますが、repodata ディレクトリーを作成します。livecd-creator
コマンドは、このディレクトリーを使ってパッケージを利用します。
構成パッケージのローカル・リポジトリーを作成する
これから作成しようとする Live CD のベースとして Zeuthen のパッケージを使用しようとしているので、そのためのローカル・リポジトリーも作成する必要があります。
リスト 5. LiveCD パッケージのリポジトリーを作成する
# mkdir base_packages # cd base_packages # wget -c http://people.redhat.com/davidz/livecd/i386/fedora-livecd-6-1.i386.rpm # wget -c http://people.redhat.com/davidz/livecd/i386/fedora-livecd-gnome-6-1.i386.rpm # wget -c http://people.redhat.com/davidz/livecd/i386/fedora-livecd-desktop-6-1.i386.rpm # createrepo /root/base_packages |
先ほどと同じく、この最後のコマンドは、livecd-creator
が構成パッケージを探す際に役立つ repodata ディレクトリーを作成します。
上に戻る
CD を作成する
リポジトリーを設定できたので、容易にカスタムの Live CD を作成することができます。livecd-creator
コマンドは、CD-R に書き込める ISO イメージを作成します。しかし私としては、実際に物理メディアには書き込まず、仮想化ソフトウェアを使ってISO イメージをテストするようにお勧めします。仮想化ソフトウェアとしては、VMware Player や QEMU、VirtualBox など、無料で入手できるものがいくつかあります。
最小限の Live CD
livecd-creator
コマンドの使い方を理解するために、まず最小限の Live CD を作ることから始めましょう。
リスト 6. 最小限の Live CD を作成する
# livecd-creator --repo=c6,file:///var/www/html/repo/core --package=bash \ --package=kernel --package=grub --fslabel=Fedora-minimal-LiveCD |
このコマンドは livecd-creator
に対して、ローカル・リポジトリーから 3 つのパッケージ (bash と grub、kernel) を取得し、それらを Fedora-minimal-LiveCDという名前の Live CD に含めるように命令しています。livecd-creator
コマンドは Fedora の YUM を使ってこれらのパッケージをインストールし、従って、指定されたパッケージが依存する他のアプリケーションもインストールします。
このコマンドは完了までに少し時間がかかりますが、その理由は、まず作業スペースを作成し、次に指定されたパッケージとそれらに依存するものをインストールし、Fedoraのセキュリティー機構である SELinux のための作業スペースのラベルを変更し、作業スペース全体を圧縮し、Live CD のブートローダーであるGRUB を構成し、そして最後に ISO イメージを作成するためです。
おめでとうございます。これで最初の Live CD ができました。もちろん、この Live CD は構成ファイルを持っていないため、大したことはできません。
GNOME が含まれる Live CD
livecd-creator
コマンドの動作は理解できたので、このコマンドを使って、GNOME が含まれる Live CD を作成してみましょう。
DWFファイルは何ですか
リスト 7. GNOME が含まれる Live CD を作成する
# livecd-creator --repo=c6,file:///var/www/html/repo/core \ --repo=lcd6,file:///root/base_packages \ --package=fedora-livecd-gnome \ --repo=e6, \ --fslabel=My-Fedora-LiveCD-1 |
ここでは、ベース・パッケージのためにローカル・リポジトリーを使用し、そして作成する CD のベースとして、どの構成パッケージが必要かを指定しています。また、fedora-livecd-gnomeで要求されるパッケージを、ローカルの core リポジトリーからフェッチすべきであることも指定しています。fedora-livecd-gnomeの中には、core リポジトリーに入っていないパッケージがいくつかあります。こうしたパッケージは、指定された URL の extras リポジトリーからフェッチされます。そして最後に、My-Fedora-LiveCD-1.isoと呼ばれる ISO イメージを作成します。
もし livecd-creator
が、あるパッケージを見つけられない場合 (例えば、そのパッケージが指定されたリポジトリーにない場合) には、このコマンドは単純にそのパッケージをスキップし、それでもLive CD を作成します。見つからないパッケージが kernel のような必須パッケージでない限り、使用可能な Live CD が作成されます。
構成 RPM の中にあげられたパッケージとは別に、--package
スイッチを使ってカスタム・パッケージを追加することもできます。また livecd-creator
コマンドでも、複数のリポジトリーを使って CD を作成することができます。
リスト 8. 複数のリポジトリーを使って Live CD を作成する
# livecd-creator --repo=c6,file:///var/www/html/repo/core \ --package=openoffice --repo=lcd6,file:///root/base_packages \ --package=fedora-livecd-gnome \ --repo=e6, \ --repo=livna, \ --package=vlc \ --fslabel=My-LiveCD-2 |
この前の例と同じく、このコマンドは fedora-livecd-gnome の全パッケージを含んだ Live CD を作成します。さらにこのLive CD は、core リポジトリーにある OpenOffice.org のオフィス・スイートも含みます。また、livna リポジトリーにあるVLC Media Player も追加します。この Live CD はサードパーティー製のリポジトリーのパッケージを含み、Fedora LiveCD とは呼べないため、これを My-LiveCD-2 と呼ぶことにします。
CD を作成した後に、別のアプリケーション (例えば Evolution E メール・クライアントなど) をこのカスタム CD に追加したい場合にはどうするのでしょう。まったく問題ありません。その前のCD の ISO イメージを持っていれば、この ISO イメージのパッケージを使用して新しいパッケージを追加するように、単純に livecd-creator
に命令すればよいのです。
リスト 9. 既存の Live CD ISO イメージに新しいパッケージを追加する
# livecd-creator --repo=c6,file:///var/www/html/repo/core \ --base-on=My-LiveCD-2.iso --package=evolution --fslabel=My-LiveCD-New |
これによって、この前の ISO イメージのパッケージをベースに Evolution パッケージを追加した、新しい Live CD が作成されます。
上に戻る
カスタムの構成パッケージを作成する
上記の例から、Live CD の作成が大した作業ではないことを理解できたと思います。Zeuthen のパッケージを使うことで、いくらでも LiveCD を作成でき、任意のリポジトリーからアプリケーションを追加できるのです。
しかし、例えば文書やコードを作成するために使用する Live CD を作成する必要があるとしたらどうでしょう。そしてこの Live CD の中に、OpenOffice.orgや、Evolution の E メール・クライアント、Beagle デスクトップ検索、GAIM インスタント・メッセンジャー、Xchat IRCクライアント、GIMP イメージ・マニピュレーター、GCC コンパイラー、GDB デバッガー、そしてコード文書化用の Doxygen などを含めたいとします。
これらを、CD を作成しようとする都度 --package
スイッチで指定することもできますが、独自の構成ファイルを作成する方法もあります。構成ファイルを使うことによる追加の利点として、カスタムの構成も指定できることがあげられます。
構成ファイルを分析する
独自の構成ファイルを作成する前に、これまで Live CD (fedora-gnome) を作成するために使ってきた構成ファイルを見てみましょう。RPMから構成ファイルを抽出するには、fedora-livecd-gnome-6-1.i386.rpm を右クリックし、Extract Hereオプションを選択します。これによって、etc/livecd/ ディレクトリーの下に 20-fedora-livecd-gnome.conf というファイルが得られるはずです。先頭の数字は、パッケージ・ツリーの中の特定パッケージを識別するために役立ちます。つまり20-* パッケージは 10-* パッケージの後に来るもので、おそらく 10-* パッケージに依存しており、また 30-* パッケージは 20-*およびそれ以前のパッケージの後に来るものであり、おそらくそうしたパッケージに依存しています。
このファイルの最初の部分はインストールすべきアプリケーションのリストを含んでおり、また 2 番目の部分は、その特定の環境に対して設定する必要がある構成を含んでいます。
PCのハードドライブVistaをフォーマットする方法
リスト 10. 20-fedora-livecd-gnome.conf ファイルの内容
case $1 in # inquire what packages to install; must print packages to install pkgadd) echo " chkconfig gdm gnome-panel nautilus metacity gnome-themes redhat-artwork gnome-power-manager gnome-volume-manager desktop-printing gnome-terminal gedit . . . . # run configuration scripts when all packages are installed post) # mount livecd mkdir -p /mnt/livecd mount -o ro -t iso9660 /dev/livecd /mnt/livecd # add fedora user with no passwd useradd -c "Fedora live CD" fedora passwd -d fedora > /dev/null . . . . |
これを見るとわかるように、ユーザーの設定やネットワークの設定など、大部分の作業は fedora-gnome パッケージが行っています。
構成ファイルを作成する
構成ファイルを作成するために最善の方法は、20-fedora-livecd-gnome.conf を使用し、GNOME 特有の部分を削除する方法です。ここではこのファイルを40-fedora-livecd-office-code.conf と呼ぶことにしましょう。そのためには下記のようにします。
# cp 20-fedora-livecd-gnome.conf 40-fedora-livecd-office-code.conf
GNOME 特有の部分を除いてしまえば、必要な一連のパッケージを追加することができます。新しいファイルは次のようになるはずです (スペースを節約するためにライセンス関係の部分を除いてあることに注意してください)。
リスト 11. 新たに作成された 40-fedora-live-office.conf ファイル
#!/bin/bash # livecd configuration for Base Fedora system # PLEASE ADD LICENSE RELATED NOTE case $1 in # inquire what packages to install; prints package list on stdout pkgadd) echo " evolution evolution-connector evolution-webcal gaim xchat beagle gimp openoffice.org-core openoffice.org-draw openoffice.org-calc openoffice.org-graphicfilter openoffice.org-math openoffice.org-writer openoffice.org-xsltfilter openoffice.org-impress gcc gdb doxygen " ;; # run configuration scripts when all packages are installed post) ;; # run when an livecd install is complete to clean up install-post) ;; # run when an livecd install is complete; must prints packages to remove install-pkgrem) echo " fedora-livecd-office-code " ;; esac |
ISO イメージが作成される前に、削除すべきパッケージ・リストの中に構成パッケージの名前を含めることを忘れないでください。
RPM を作成する
この構成ファイルを実際に使う前に、このファイルから RPM を作成する必要があります。RPM を作成するためには SPEC ファイルが必要です。そのためにはZeuthen の fedora-livecd.specを使用し、このファイルを編集して新しい構成ファイルに関する情報を含むようにします。
基本的に、SPEC ファイルは、RPM に含めるファイルのリストと、RPM をインストールした際にそれらのファイルをどこに置くかの情報を含んでいます。ここではSPEC ファイルを作成するための詳細は省略し、私がこの記事のために作成した SPEC ファイルを使います。これを下記の「ダウンロード」セクションからダウンロードしてください。そしてコメントを読んで、Zeuthen によるオリジナル・ファイルからどう変更されているかを理解してください。
私の SPEC ファイルが、他のパッケージの構成ファイル (fedora-live-gnome-fedora-livecd-desktop など)を指していることに注意してください。これらを含めて、すべてが用意できていることを確認します。
Fedora は rpmbuild
コマンドを使って SPEC ファイルから RPM を作成します。rpmbuild
コマンドは、すべての .conf 構成ファイルが、(SPEC ファイルの中で SOURCE として記述されている他のすべてのファイルと共に)/usr/src/redhat/SOURCES ディレクトリーの下にあることを想定しています。また、Zeuthen's fedora-livecd.specファイルが/usr/src/redhat/SPECS ディレクトリーの下にあることも確認します。
リスト 12. 新しい RPM を作成する
# cd /usr/src/redhat/SPECS # rpmbuild -bb fedora-livecd.spec # ls /usr/src/redhat/RPMS/i386 fedora-livecd-6-2.i386.rpm fedora-livecd-gnome-6-2.i386.rpm fedora-livecd-desktop-6-2.i386.rpm fedora-livecd-office-6-2.i386.rpm |
カスタムの RPM をオリジナルと区別するために、私はバージョン番号をオリジナルの 6-1 から 6-2 に変更しました。
カスタムの RPM を使って Live CD を作成する
RPM を好きなように作ることができれば、Live CD を作成するための手順も先ほどと違いはありません。新しい RPM を含むパッケージのローカル・リポジトリーを再度作成します。
リスト 13. 新しい RPM を含む構成パッケージのローカル・リポジトリーを作成する
# rm /root/base_packages/* # cp /usr/src/redhat/RPMS/* /root/base_packages/ # createrepo /root/base_packages |
今度は livecd-creator
を使って、新たに作成されたパッケージを使います。
リスト 14. 新しい Fedora-Office-Code-LiveCD RPM を使って Live CD を作成する
# livecd-creator --repo=c6,file:///var/www/html/repo/core \ --repo=lcd6,file:///root/base_packages \ --package=fedora-livecd-office-code \ --repo=e6, \ --fslabel=My-Fedora-Office-Code-LiveCD |
ご覧のとおりです。まったく独自のカスタム構成から、まったく独自のカスタム Live CD を作成することができました。
構成 RPM の作成方法が理解できさえすれば、すぐに Live CD を作成できます。また任意の設定を変更し、パッケージを追加したり削除したりすることで、LiveCD をカスタマイズできます。さらに、私が SPEC ファイルで示したように、Live CD 環境の中に任意のデータ・ファイルを移動することもできます。
既にテスト段階にある Live CD インストーラーがリリースされるのも時間の問題です。構成ファイルの中に 1 つのエントリーを含めるだけで、あるいは--package
オプションを付けるだけで、それが Live CD の中にバンドルされ、そのままハードディスクにインストールできるものになります。なんと素晴らしいことでしょう。皆さん独自のカスタムLinux ディストリビューションが即座に作成できるのです。
上に戻る
ダウンロード
内容 | ファイル名 | サイズ | ダウンロード形式 |
---|---|---|---|
Sample SPEC file | fedora-livecd-custom.zip | 2KB | HTTP |
ダウンロード形式について
参考文献
学ぶために
製品や技術を入手するために
- LivnaとFreshRPMの 2 つは、Fedora 用の非公式サードパーティー・パッケージを入手するためのリポジトリーとして非常に人気があります。
- Fedora 6 の「core」 リポジトリーと 「extras」 リポジトリーに含まれるパッケージのリストを見ることができます。
- Zeuthen の Fedora ホームページから livecd-tools RPM を入手してください。
- createrepo toolを使ってローカル・リポジトリーを作成してください。
- RPM を作成するためには SPEC ファイルが必要です。 Zeuthen の fedora-livecd.specを入手し、これを編集して新しい構成ファイルに関する情報を含めてください。
- 2枚組 DVD セット、SEK for Linuxをご注文ください。DB2® や Lotus®、Rational®、Tivoli®、WebSphere®など、Linux 用の最新 IBM ソフトウェアの試用版が含まれています。
- IBM trial softwareは developerWorks から直接ダウンロードすることができます。
議論するために
著者について
Mayank Sharmaは過去5年間、主にフリー・ソフトやオープン・ソフトウェアに関する技術記事を書いてきています。またアジアでの先端的なF LOSS月刊誌、LINUX For Youの立ち上げに(副編集者として)貢献し、現在はローカライズに特化したWebベースの資料公開のとりまとめや教育、F LOSSへの移行などに多忙な日々を送っています。Mayankは執筆活動の他にハッキングにも熱心で、最近ではUtkarshローカライズ・プロジェクト用のインストーラーに寄与しました。現在もコンピューター・サイエンスの学位を取るべく苦闘しながら、フォーミュラ・ワンのカー・レースにも熱中しています。
この記事を評価する
コメント
上に戻る
0 コメント:
コメントを投稿