技術情報 /

オリジナル版・派生の作成

これを見ている中には、Puppy Linux から特定のパッケージを増減させた独自の Puppy を作ったり、
Puppy Linux から派生したディストリビューションを作成したいと思っている人もいるかもしれません。
Puppy Linux ではそのためのツールも存在し、容易に実現させてくれます。

パピーシンプル CD リマスタ

メニュー - セットアップ - PuppyCDライブのリマスタ で パピーシンプル CD リマスタ が起動します。
これは現在の構成を元に本体の .sfs ファイルを再構成し、それを CD に書き込みます。
CD の代わりに .iso ファイルを生成する事もできます。

簡単に手順を記載します。(Precise など最近のバージョンでの手順です)

  • 必要なファイルはローカル上に予め準備して下さい。
    また作業を行う元となる .iso ファイルまたは CD も必要です。
  1. RAM モードで起動します。
    個人保存ファイルがある場合、それらの情報も含めてしまうのでご注意下さい。
  2. /root ・ /etc 以外の変更作業を行います。
    /root ・ /etc は後ほど行うので、変更する場所はメモっておいて下さい。
    • 追加 - .pet ・.deb ファイル等を用いて追加します。.sfs も使用できます。
    • 削除 - 元々入っているアプリケーションを削除したい場合は
      /root/.packages に情報があります。
      woof-installed-packages が元々入っているパッケージの構成、
      builtin_files 内のパッケージ名ファイルにそのパッケージが生成している
      ファイル・フォルダの記載があります。
      これらを元に手動でファイル・フォルダの削除を行います。
  3. PuppyCDライブのリマスタ を起動します。
  4. 作業フォルダ を指定します。空容量を数百 M バイト使用します。
  5. 元となる .iso ファイルまたは CD の確認を行います。.iso の場合はクリックしてマウントしてます。
  6. しばらく待ちます。はやくても数十分かかりますので、気長にお待ち下さい。
  7. /root の構成が /tmp/root に生成されます。この段階で /root の編集を行います。
  8. /etc の構成を確認されます。変更する場合は /tmp/etc に生成されますので、ここを編集します。
  9. CD・.iso ファイルの中身が作業フォルダの puppylivecdbuild フォルダ で構成されます。
    起動時のスプラッシュ画面、menu.lst、アイコン等はこのタイミングで編集します。
  10. CD へ書き込むか確認されます。必要なら「はい」として CD-R などへ書き込んで下さい。
  11. .iso ファイルを生成するか確認されます。必要なら「はい」として作成して下さい。
  12. これで作業終了です。なお、puppylivecdbuild フォルダは削除されずに残されます。
これらの作業中に極力アプリの起動をしないで下さい。
アプリの起動で関連ファイルが作成され、それらが CD・.iso ファイルに書き込まれてしまいます。
例えばブラウザを起動すると、キャッシュファイルなどが生成される事にご注意下さい。

配布を行うなら通常 .iso ファイルを生成する必要があるでしょう。
また、生成した CD か .iso ファイルを元にして更に編集する事ができます。どちらかは生成して下さい。
修正し忘れや作業追加は、生成からの編集で可能です。

本体 .sfs と vmlinuz initrd.gz は対になっています。
そのため、ファイルコピーで行う場合、本体 .sfs だけ上書きしても Not Found となって起動しません。
vmlinuz initrd.gz も一緒に上書きして下さい。

他のリマスターを使用する

他のリマスターも使用して生成もできますが、 普通に .pet や .deb でインストールした場合、生成された CD・.iso ファイルの中にも入ってしまいます。 RAM に展開していない /mnt/home や他のパーティションに解凍しておき、実行すると良いでしょう。

Remaster Express(Remasterx)

http://sakurapup.browserloadofcoolness.com/viewtopic.php?f=30&t=2426

シノバー user:shinobar さんによるリマスター。.pet で普通にインストールした場合は日本語表示にも対応します。
/etc /root も含めてそのままリマスターを行います。

Mkdist

http://sakurapup.browserloadofcoolness.com/viewtopic.php?f=30&t=2436

シノバー user:shinobar さんによるリマスターですが、他とは違う動作です。
Mkdist を実行し、.iso .sfs initrd.gz を選択してフォルダに展開します。
そのフォルダを編集した後、再度 Mkdist を実行してフォルダを選択すると
.iso .sfs initrd.gz を生成してくれます。
わざわざ起動する事なく生成でき、特に boot 関連の編集はすぐに .iso ファイルを生成できて便利です。
(本体の .sfs ファイル生成は時間がかかります)

ソースの選択によって、下記の動作をします。

.iso (CD)

  • CD・.iso ファイルの場合はその中身を inside-iso でツリー展開します。下記 *.sfs ファイルも展開します。
  • inside-iso や puppy-precise-5.7.1 等のフォルダの場合はビルド作業を行い、.iso ファイルを生成します。

.sfs

  • .sfs ファイルの場合は中身をその名前(例えば puppy-precise-5.7.1)でツリー展開します。

initrd.gz

  • initrd.gz の場合は initrd-tree でツリー展開します。
  • initrd-tree の場合は inside_iso/initrd.gz を生成します。

起動時の動作を変えたい

initrc.gz を解凍し、DISTRO_SPECS を変えて再生成します。 initrd.gz の解凍は下記のコマンドです。

gzip -cd ../initrd.gz | cpio -im -d

生成は下記のコマンドです。initrd_new.gz になります。

find ./ | cpio -H newc -o | gzip > ../initrd_new.gz

このページの上記に記載する Mkdist を使用し、GUI で initrd.gz の解凍・生成が可能です。

DISTRO_SPECS を変更した場合、本体 .sfs 内の /etc にも DISTRO_SPECS があり、
こちらも変更する必要がありますので、ご注意下さい。

カーネルのコンパイル

下記から入手できます。

http://www.puppylinux.com/development/compilekernel.htm

日本語フォーラムにも投稿があります。ヒントになるでしょう。
ただし、文中の URL は現在参照できない事に注意して下さい。

http://sakurapup.browserloadofcoolness.com/viewtopic.php?t=1280

独自のディストリビューションをリリースする場合

PuppyFAQ
「Q15:パピーをベースにした私自身のディストリビューションをリリースできますか?」
を参照して下さい。