2012年5月6日日曜日

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 -    # wget -c http://people.redhat.com/davidz/livecd/i386/livecd-tools-001-1.i386.rpm  # rpm -ivh livecd-tools-001-1.i386.rpm  

これで livecd-creator コマンドが使えるはずです。このコマンドを何もオプションを付けずに呼び出すと、単純なコマンド・リストが得られます。


画像のページファイルは、ノートンゴーストでない

リスト 2. livecd-creator コマンドに用意されたオプション
                    $ livecd-creator  No packages specified.    usage: livecd-creator [--help]                         [--repo=, ...] [--repo=,]                        --package= [--package= ...]                        [--exclude-package=] --exclude-package= ...]                        [--base-on=]                        [--fslabel=

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  /var/www/html/repo/core/  # createrepo /var/www/html/repo/core/  

この最後のコマンドは完了するまで少し時間がかかりますが、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 filefedora-livecd-custom.zip2KBHTTP

ダウンロード形式について

参考文献

学ぶために

製品や技術を入手するために

  • 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ローカライズ・プロジェクト用のインストーラーに寄与しました。現在もコンピューター・サイエンスの学位を取るべく苦闘しながら、フォーミュラ・ワンのカー・レースにも熱中しています。

お客様が developerWorks に初めてサインインすると、プロフィールが作成されます。 プロフィールで選択した情報は公開されますが、いつでもその情報を編集できます。 お客様の姓名(非表示設定にしていない限り)とディスプレイ・ネームは、投稿するコンテンツと一緒に表示されます。

developerWorks に初めてサインインするとプロフィールが作成されますので、その際にディスプレイ・ネームを選択する必要があります。ディスプレイ・ネームは、お客様が developerWorks に投稿するコンテンツと一緒に表示されます。

ディスプレイ・ネームは、3文字から31文字の範囲で指定し、かつ developerWorks コミュニティーでユニークである必要があります。また、プライバシー上の理由でお客様の電子メール・アドレスは使用しないでください。

この記事を評価する

コメント



These are our most popular posts:

はじめての自宅サーバ構築 - Fedora/CentOS - Webページアクセス制限 ...

2012年4月6日 ... これは、アクセス制限をかけたいパスに「.htaccess」というファイルを作成し、アクセス 制限をかける設定を記入すれば簡単に出来ます。 ここでは、指定されたユーザと パスワードを入力することにより、制限をかけたWebページの閲覧方法を紹介 ... read more

Windowsファイルサーバー構築(Samba) - Fedoraで自宅サーバー構築

Windowsファイルサーバー構築(Samba) ... また、全ユーザでフルアクセスできる共有 フォルダも作成する。 ... 新規にユーザを作成する場合はここから-- [root@fedora ~] # useradd fedora ← Linuxへユーザ新規登録(例としてfedoraとする) [root@fedora ... read more

DualBoot

どちらの場合も、FedoraはGrubブートローダを使用してデュアルシステムを自動的に 作成する。 dualboot12 . Fedoraのgrub.conf にはWin7のboot方法が次のように 設定されている。 ... 出力するファイル名は任意であるが、ここではfedora.imgとする。 1. read more

Fedora 7でオリジナルのインストールDVDを作成する(pungi編) - @IT

2007年6月27日 ... ここでは、「pungi」を使用して、インストールDVDを作成する方法を紹介する。 ... その 関係で、作成にはかなりの時間が必要だ。.isoファイルは/srv/pungi/f7/7/Fedora/i386/ iso/に作成されるので、これを焼けばオリジナルのインストールDVDが ... read more

Related Posts



0 コメント:

コメントを投稿