Unleashedも使い方によっては中々面白いが、新しいWoofはどんな物なのか確かめてみたくなった。使い方を見てみるとUnleashedによく似ている。Woofの解説を勝手に、しかも適当に翻訳した。間違っているかも。
---------------------------------------
Woof: the "Puppy builder"
Page updated 24 May 2009
Preamble
2008年11月に、私はPuppy Linuxプロジェクトのリーダーとしての役割を引退することに決めて、Puppy-コミュニティのメンバーにPuppyの新しいバージョンを開発してもらう事にしました。Puppy4.1.2は、私が監督した最後のリリースでした。
「引退」という言葉を使用しましたが、私はまだPuppyLinuxの開発を終えてはいません--Puppyの開発は、刺激的で、中毒性があります!私が欲しかったのは、新しいアイデアを探る時間と自由でした...そして、最初に出来た物に、Woofと名付けました。
Rationale
今まで、Puppyには、Puppy Unleashedと呼ばれるビルドシステムがありました。Puppy UnleashedはPETパッケージのレポジトリにアクセスしてパッケージを選択しLive-CDを製作します。この方法では様々な問題があります:
1.PETパッケージは、かなり縮小されたバイナリパッケージです。PETパッケージを作成する際、しばしば余分な物を切ったり整えたりして手を加える必要があります。
2.PETバイナリパッケージのレポジトリを公開するには、ソースパッケージのレポジトリも公開する事が法律上義務づけられています。
3.ベースパッケージ、例えばglibc、gcc、gtk、cups、ghostscriptと他のシステムライブラリをアップグレードし、全ての動作が機能する新しいPETパッケージと「devx」ファイルを作成することは、非常に長い時間がかかります。
Puppyの旧バージョンでは、別のディストリビューションからバイナリパッケージを流用しました。例えば、Puppy3シリーズはSlackwareのバイナリパッケージをベースにしています。しかしながら、実際にPETパッケージを作成して、手動であらゆる段階を踏み、最終的なリリース前に正常動作させるのに数カ月を費やしました。
Solution
長い間、私は、他のdistroパッケージをダウンロードすることができる「魔法のスクリプト」を夢見ており、それらをPuppyサイズまでカットダウンして、PuppyLinuxのLive-CDを構築させる事です。--そしてこれら全てを自動的にする事です。
Puppyプロジェクトの管理から自由の身になり、この夢を追い求める時間が出来ました。その結果がWoofです。
This is what Woof does:
1.他のdistro用パッケージをダウンロードします。したがって、どこにもホストコンピュータを設置する必要はありません。(ディストリビューションには、適当なパッケージが無いかもしれません。したがって、いくつかのPETパッケージがまだ必要です。)
2.パッケージを選択したら、自動的にPuppyLive-CD isoファイルを作ります。
3.自動的に'devx'SFSファイルを作ります(PuppyがどのようにC/C++コンパイルをサポートするかです)。
4.多数のdistroをサポートします。
5.容易に、新しいバージョンにアップグレードします。
6.最終結果が、Puppy Linuxです
Multiple distros
Woofは、どんなdistroのパッケージでも柔軟に処理出来る設計です。これを書いている時点でWoofはDebian、Ubuntu、Slackware、およびArchをサポートしています。RPMベースのdistroを1つを加えたいと考えています。
Easy upgrade
まだ立証されていませんが、これが特におもしろいのがわかりました。Ubuntuは、Intrepid、Jaunty、Karmic、などの名前をつけられます。Puppyは、今のものならどれからでも作り上げることが出来ます。新しいリリースを出す時、Woofが必要とするのは、リリースの名前であり、Woofは、すべてのパッケージをダウンロードして、新しいPuppyLinuxを構築します。パッケージ名を固定するのに2、3時間かかるかもしれません。しかし、新しいPuppyのアイデアは、1日あれば良いでしょう。
The end result
...PuppyLinuxです!私が言いたいことは、速度、コンパクト性、PuppyLinuxの使い易さなど、何も犠牲にされません。Ubuntuパッケージから構築すると、99MB(あるいはそのぐらい)のLive-CD、Puppy用のツールとデスクトップを持ちRAMの中で高速で動くPuppyを手に入れられるでしょう。
Preparation
Woofは非常に簡単です。tarballをダウンロードしてください。"Woof-476.tar.gz"とか何か名前があります。手順に従います。
1.User knowledge
Linuxハードドライブpartitonsについての知識とLinuxコマンドラインについての基礎的な知識を必要とします。
もしこの知識の無いWindowsからの避難民ならば、どこか別の所で学習する必要があります。( あるいは、既製のPuppy live-CD ISOファイルを単にダウンロードして使います。)
2.Suitable build environment
woof tarballを解凍して下さい。--Puppyでクリックすれば出来ます。
Linuxパーティションで操作します。
Windows/DOS FAT NTFSパーティションでは動きません。
パーティションには十分なスペースが必要で10Gを勧めます。
3. Host operating system
Linux環境で操作していなければなりません。あなたが今走らせているLinux distroには、使えないか行方不明な「dpkg-deb」と「lzma」ユーティリティがあるかもしれません。この問題はPuppy Linux 4以下に適用されます。「support/dpkg-deb」は/bin に、そして、「support/lzma」は/usr/binに置きます。他のバージョンでは違います。(最初に、"which" でどこかで動いていないことを確認してください)。
NOTICE:Woofは、現在Puppyホストシステムをベースにしているだけです。
4.Choose a compatible-distro.
これは、あなたがあなたのPuppyを造るためにパッケージを「借りる」ことになるdistroです。 テキストエディタでファイル"DISTRO_SPECS"を開いて、次の部分を変えてください。:
DISTRO_BINARY_COMPAT="ubuntu"
あなたが利用出来るものに、現在"ubuntu"、"Debian","slackware","arch","puppy"又は"T2"があります。
5. Internet access
多くのパッケージをダウンロードしなければならないので、ブロードバンドの接続が最も良いのですが、ダイアルアップも可能です。--我慢強く! 合計550MBをダウンロードする必要がある。
Building
"woof"tarballを解凍すると5つのスクリプトがあります。:
0Pre, 0setup, 1download, 2createpackages, 3builddistro
あなたが行うのは、T2用の0preを除いて、これらを順番に実行することです。
0pre パッケージ・データベース・ファイルを生成します。
これはT2だけのための特別な前処理スクリプトです。説明については、スクリプトのコメントを参照してください。support/subdirectoryの「readme」も参照してください。
0setup データベースファイルをダウンロードします。
woofディレクトリで端末を開き"0setup"を走らせます。
# ./0setup
1download パッケージをダウンロードします。
# ./1download
2createpackages cut-downした一般的なPuppyパッケージを構築します。
PCによっては、2-3時間かかるでしょう。CPU1.5GHz以上、RAM256MB以上の新しめのPCを推奨します。
# ./2createpackages
3builddistro Puppy live-CDを作ります。
「sandbox3」という名前のディレクトリに、live-CD isoファイルと、ビルドされたファイル、そして「devx」ファイルがここに出来ます。
# ./3builddistro
Future
主なdistroとのバイナリの互換性は1つの明白な長所があります:リポジトリのすべてのパッケージへのアクセス。さて、どんなバージョンのPuppyでも、Puppyの中心的なファイルがそのdistroで造られている時には、適所に必要条件があります。最も重要な事に、他のパッケージを使用してコンパイルされたパッケージがあります。--言い換えれば、違うバージョンのライブラリで構成された物のミスマッチを避けます。
さらに、特殊なパッケージをインストールするのに多くの条件が必要ならば、リポジトリで利用可能でしょう。ソースからコンパイルする際、非常に時間が掛かり、失敗し易いプロセスに直面する必要はありません。
予定リストにありますが、互換性のあるdistroのリポジトリからパッケージをインストールできるようにPuppyのパッケージ管理を広げます。
予定リストの他項目:
1.Woofスクリプトでの自動依存性管理化。
2.言語選択用のlocaleファイル組込み。
3.SFSファイルのドキュメントを別にする。
Footnote
誰がWoofを使うのか?好奇心の強い人々は、ガマン出来ないでしょう!
WoofはLinux-distroの開発者用ツールです。エンドユーザー用の物ではありません。
Linuxを使うだけなら既にあるLive-CD ISOファイルをダウンロードして下さい。--Woofはあなた向けではありません。
私は、Woofが新しいたくさんの「puplets」を生み出すであろうと思います。(Puppyの派生物)!