MyNotes/debian-cd/README.easy-build.txt

400 lines
28 KiB
Plaintext
Raw Normal View History

debian-cd easy-build
====================
INTRODUCTION
============
easy-build.sh is a "wrapper" script around the more basic build.sh build
script. It is designed to make building a specific image or set or images
as easy as possible, while still offering all the flexibility of debian-cd.
easy-build.sh は、より基本的な build.sh ビルドスクリプトの「ラッパー」スクリプトです。これは、debian-cd の柔軟性をすべて提供しつつ、特定のイメージのビルドを 可能な限り簡単にするように設計されています。
easy-build.sh supports the following variations:
easy-build.shは以下のバリエーションをサポートしています
- businesscard, netinst and full CD images, and DVD images
- single-architecture and multi-architecture images
- optionally include source packages
- select to install GNOME (default), KDE, LXDE or Xfce desktops as desktop
task
- create a combined LXDE/Xfce "light desktop" CD
- create a businesscard or netinst CD, or DVD set supporting all four
desktop environments
- creates ISO files by default; creating jigdo files is possible
- specify which Debian release to use
- include custom versions of packages (debs)
- specify which Debian Installer (D-I) version and source to use, including
custom images
- include custom versions of Debian Installer components (udebs)
- ビジネスカード、netinst、フルCDイメージ、DVDイメージ
- シングルアーキテクチャおよびマルチアーキテクチャ・イメージ
- オプションでソースパッケージを含める
- デスクトップ・タスクとして、GNOMEデフォルト、KDE、LXDE、Xfce デスクトップのいずれかを選択してインストールできる
- LXDE/Xfce を組み合わせた "ライトデスクトップ" CD の作成
- ビジネスカード、netinst CD、または 4 つのデスクトップ環境すべてをサポートする DVD セットを作成
- デフォルトで ISO ファイルを作成; jigdo ファイルの作成も可能
- 使われる Debian リリースを指定
- カスタムバージョンのパッケージ (debs) を含める
- 使用する Debian インストーラ (D-I) のバージョンとソースを指定 (カスタムイメージを含む)
- カスタムバージョンの Debian インストーラコンポーネント (udebs) を含める
Using easy-build.sh is somewhat simpler than calling make directly or even
than using build.sh as it splits the complex configuration of debian-cd
into three levels:
easy-build.sh を使用すると、make を直接呼び出すよりも、あるいは build.sh を使用するよりも、debian-cd の複雑な設定を 3 つのレベルに分割するので、いくらか簡単になります:
1) CONF.sh: basic configuration such as paths
2) easy-build.sh: characteristicts of the CD/DVD set, for example:
- Debian release
- D-I version and source of D-I images
- number of CDs or DVDs to generate
3) command line parameters:
- type of image (businesscard, netinst, full CD or DVD
- which architecture(s)
- which desktop to install
1) CONF.sh: パスなどの基本設定
2) easy-build.sh: CD/DVDセットの特徴
- Debianリリース
- D-I のバージョンと D-I イメージのソース
- 生成する CD/DVD の枚数
3) コマンドラインパラメータ
- イメージの種類 (ビジネスカード、netinst、フル CD または DVD)
- どのアーキテクチャか
- インストールするデスクトップ
easy-build.sh also ensures that "task files" are automatically updated as
needed. If custom packages are included it can automatically generate a
Packages file for the local repository: just copy the packages to the
correct location and let easy-build.sh do the rest.
easy-build.shは、必要に応じて "タスクファイル "が自動的に更新されることも保証します。カスタムパッケージが含まれる場合、ローカルリポジトリ用のPackagesファイルを自動的に生成することができます パッケージを正しい場所にコピーし、後はeasy-build.shに任せてください。
Types of images & task definitions
----------------------------------
easy-build.sh can be used to create four types of images:
easy-build.shは4種類のイメージを作成するために使用します
- businesscard CD: only contains Debian Installer; any packages neede for
the installed system are retrieved from a mirror during the installation
- netinst CD: contains Debian Installer and all packages needed to install a
Debian "base system" (packages with priority important or higher)
- full CD: same as netinst CD, but filled to capacity with additional
packages based on "task" definitions; image size is 680MB
- DVD: same as full CD, but with an image size of 4.7GB
- businesscard CD: Debian インストーラのみを収録。インストールされるシステムに必要なパッケージは、インストール中にミラーから取得されます。
- netinst CD: Debian インストーラと、Debian の「基本システム」のインストールに必要なパッケージ (優先度 important 以上のパッケージ) がすべて入っています。
- full CD: netinst CD と同じですが、「タスク」定義に基づく追加パッケージで容量いっぱいです;イメージサイズは 680MB です。
- DVD: フル CD と同じですが、イメージサイズは 4.7GB です。
The businesscard and netinst CD are always a single image. The size of these
images depends on the architecture. For i386 they are around 40MB and 150MB
respectively.
businesscard と netinst CD は常に単一のイメージです。これらのイメージのサイズはアーキテクチャに依存します。i386の場合、約40MBから150MBです。
The full CD and DVD are sets of images, but the set can be limited to any
number. The first image of the set always includes Debian Installer and
packages needed for the base system. After that the first and following
images are filled up to capacity with packages in the following order:
full CD と DVD はイメージのセットですが、セットは任意の数に制限できます。セットの最初のイメージには、常に Debian インストーラと基本システムに必要なパッケージが含まれています。その後、最初のイメージとそれに続くイメージは、以下の順番でパッケージでいっぱいになります:
- "essential" packages from tasksel tasks
- "optional" packages from tasksel tasks
- other packages sorted by popularity (popcon score)
- tasksel タスクの "必須" パッケージ
- tasksel タスクからの "オプション" パッケージ
- その他のパッケージの人気順 (popcon スコア)
The basic order in which packages are included on full CDs and DVDs is
defined in 'tasks/<CODENAME>/Debian'. The order in which tasksel tasks are
included is defined in 'tasks/<CODENAME>/task.list*'.
Full CD や DVD に含まれるパッケージの基本的な順番は 'tasks/<CODENAME>/Debian' で定義されています。tasksel タスクが含まれる順番は 'tasks/<CODENAME>/task.list*' で定義されています。
Current GNOME and KDE desktop environments are so large that only the
packages needed to install one of them can be included on the first full CD.
Therefore debian-cd supports creating a CD or DVD set targeted at a specific
desktop environment: either GNOME, or KDE, or Xfce.
The default 'task.list' is targeted at the GNOME desktop environment.
現在の GNOME や KDE デスクトップ環境は非常に大きく、インストー ルするのに必要などれか一つのパッケージしか、最初の full CD には含めることができません。そのため debian-cd は、特定のデスクトップ環境 (GNOME、KDE、Xfce のいずれか) を対象とした CD や DVD セットの作成をサポートしています。デフォルトの「task.list」は GNOME デスクトップ環境を対象としています。
It is possible to customize the debian-cd task definitions and even to
customize tasksel, but that falls outside the scope of this document.
debian-cd のタスク定義をカスタマイズすることは可能ですし、tasksel をカスタマイズすることもできますが、それはこの文書の範囲外です。
CREATING A MIRROR OF THE ARCHIVE
================================
debian-cd requires you to have a local mirror of the Debian archive,
normally on the same machine where you run debian-cd. There are lots of
methods to create a (partial) local archive.
debian-cd は、通常 debian-cd を実行するのと同じマシン上に、Debian アーカイブのローカルミラーを用意する必要があります。(部分的な) ローカルアーカイブを作成する方法はたくさんあります。
Make sure the following are included in your local archive:
以下がローカルアーカイブに含まれていることを確認してください:
- ./dists/<codename>/main/debian-installer/binary-<arch>/
contains Debian Installer components (udebs)
- ./doc/
- ./tools/
and optionally:
そしてオプションとして:
- ./dists/<codename>/main/installer-<arch>/
contains Debian Installer images (official releases)
One method is to use debmirror. An example script for creating a full or
partial local mirror using debmirror suitable for use with debian-cd can be
found at: http://alioth.debian.org/~fjp/debmirror/.
一つの方法は debmirror を使用することです。debian-cd での使用に適した、debmirror を使用して完全または部分的なローカルミラーを作成するスクリプトの例は、http://alioth.debian.org/~fjp/debmirror/ にあります。
BASIC CONFIGURATION
===================
Most of the variables in CONF.sh can be left at their default values. Some
just because their default value should be OK for most purposes, some
because their value is set by easy-build.sh itself.
CONF.shの変数のほとんどはデフォルト値のままで構いません。デフォルト値で大抵の目的には問題ないからというだけの理由もあれば、easy-build.sh自身によって設定されるからという理由もあります。
The following variables that define paths *must* be set in CONF.sh:
パスを定義する以下の変数は、CONF.shで設定する必要があります
- MIRROR
- TDIR
- OUT
- APTTMP
You may also want to change the following variables:
また、以下の変数を変更することもできます:
- CONTRIB: comment out if you only want to include packages from main
mainのパッケージのみを含める場合は、コメントアウトしてください。
- IMAGESUMS: comment out to skip creating checksums for images
コメントアウトして、イメージのチェックサムの作成を行わないようにする。
- OMIT_MANUAL
- OMIT_RELEASE_NOTES / RELEASE_NOTES_LOCATION
Note that if you want to vary the value of a variable for differbent builds
you can also "add" it in easy-build.sh and set it there.
もし異なるビルドのために変数の値を変えたい場合は、easy-build.shで "add" して設定することもできます。
BUILDING IMAGES
===============
After the basic configuration has been done, there are still a few variables
that need to be checked in easy-build.sh itself:
基本的なコンフィギュレーションが行われた後、easy-build.sh自体でチェックする必要のある変数がまだいくつかあります
- CODENAME: set to the codename (e.g. etch, lenny, sid) of the Debian release
for which you want to build CD/DVD images
- DI_CODENAME: set to the codename of Debian release from which D-I
*components* (udebs) should be taken; normally same value as CODENAME
- DI_DIST/DI_WWW_HOME/DI_DIR: location from where D-I *images* should be
taken; value must "match" the specified DI_CODENAME
- MAX_CDS, MAX_DVDS: only used when building full CD or DVD images
- CODENAME: CD/DVD イメージをビルドしたい Debian リリースのコードネーム (例: etch、lenny、sid) を設定します。
- DI_CODENAME: D-I *コンポーネント* (udebs) を取得する Debian リリースのコードネームに設定します。
- DI_DIST/DI_WWW_HOME/DI_DIR: D-I *イメージを取得する場所。
- MAX_CDS、MAX_DVDS完全なCDまたはDVDイメージを構築する場合にのみ使用されます。
D-I images and components
-------------------------
It is essential that D-I images and components used to build the CD match.
For example, the kernel version included in the D-I image must be the same
as the kernel version of the kernel module udebs copied to the CD.
D-IイメージとCDをビルドするために使用されるコンポーネントが一致していることが不可欠です。例えば、D-Iイメージに含まれるカーネルバージョンは、CDにコピーされたカーネルモジュールudebsのカーネルバージョンと同じでなければなりません。
The easy-build.sh script offers four mutually exclusive options to specify
the source of D-I images. In theory more are possible, but the included
options should cover most use cases.
Make sure you have only one of the four options uncommented! And don't let
yourself be confused by the fact that the four options use different
variables.
easy-build.shスクリプトには、D-Iイメージのソースを指定するための4つの互いに排他的なオプションが用意されています。理論的にはもっと多くのオプションが可能ですが、使用されるオプションでほとんどの使用ケースをカバーできるはずです。4つのオプションのうち1つだけがコメントされていないことを確認してほしいまた、4つのオプションが異なる変数を使用していることに惑わされないでください。
If you keep to the following basic rules you should be OK.
1) If DI_CODENAME is a real Debian release (e.g. etch or lenny, but not sid)
you should normally use the 1st or 2nd option. Use the 1st option if your
local mirror includes D-I images, else use the the 2nd option.
2) If you use daily built D-I images (3rd option), DI_CODENAME should be set
to "sid".
3) If you use custom images (4th option), DI_CODENAME should match the branch
of the your D-I SVN checkout and build environment; further explanation of
this is outside the scope of this document.
以下の基本的なルールを守れば問題ありません。
1) DI_CODENAME が本物の Debian リリース (例えば etch や lenny で、sid ではない) の場合、通常は 1 番目か 2 番目のオプションを使用されるべきです。ローカルミラーに D-I イメージが含まれている場合は 1 番目のオプションを使用し、そうでない場合は 2 番目のオプションを使用してください。
2) 毎日ビルドされるD-Iイメージを使用する場合3番目のオプション、DI_CODENAMEを "sid "に設定します。
3) カスタムイメージを使用する場合4番目のオプション、DI_CODENAMEはD-IのSVNチェックアウトとビルド環境のブランチと一致させる必要があります。
Examples
--------
Below are some basic examples how to run easy-build.sh. Examples for some
more advanced usages will be given in later sections.
以下はeasy-build.shの基本的な実行例です。より高度な使い方の例は後のセクションで説明します。
1) Build a lenny netinst CD image for i386
- set CODENAME and DI_CODENAME to "lenny"
- select appropriate source for D-I images (1st or 2nd option)
- run './easy-build.sh NETINST'
1) i386 用の lenny netinst CD イメージをビルドします。
- CODENAMEとDI_CODENAMEを "lenny "に設定します。
- D-Iイメージの適切なソースを選択します1番目または2番目のオプション
- ./easy-build.sh NETINST' を実行します。
2) Build the first three CD images for amd64 with KDE as desktop environment
- set MAX_CDS to "3"
- run './easy-build.sh -d kde CD amd64'
2) KDEをデスクトップ環境とするamd64用の最初の3つのCDイメージをビルドします。
- MAX_CDSを "3 "に設定します。
- ./easy-build.sh -d kde CD amd64' を実行します。
3) Build the full set of DVD images for sparc
- comment out MAX_DVDS
- run './easy-build.sh DVD sparc'
3) sparc用DVDイメージのフルセットを構築します。
- MAX_DVDSをコメントアウトします。
- ./easy-build.sh DVD sparc' を実行します。
4) Build an i386 netinst to install testing using daily built D-I images
- set CODENAME to the codename for the current testing release
- set DI_CODENAME to "sid"
- select the 3rd option as source for D-I images
- run './easy-build.sh NETINST'
4) i386 netinstをビルドし、毎日ビルドされるD-Iイメージを使用してテストのインストールを行います。
- CODENAMEを現在のテスト・リリースのコードネームに設定します。
- DI_CODENAMEを "sid "に設定します。
- D-Iイメージのソースとして3番目のオプションを選択します。
- ./easy-build.sh NETINST' を実行します。
BUILDING MULTI-ARCH IMAGES
==========================
Multi-arch images are CDs or DVDs that can be used to install more than one
architecture. However, architectures cannot be randomly combined. The main
limitations for combining architectures are:
マルチアーキテクチャイメージとは、複数のアーキテクチャをインストールするために使用されるCDやDVDのことです。ただし、アーキテクチャをランダムに組み合わせることはできません。アーキテクチャを組み合わせるための主な制限は以下のとおりです
- boot loader files and configuration cannot conflict
- image size
- ブートローダーファイルとコンフィギュレーションは競合できません。
- イメージサイズ
The following architectures can safely be combined on a single image:
以下のアーキテクチャは、1つのイメージ上で安全に組み合わせることができます
- i386, amd64 and powerpc
- alpha, hppa and ia64
When you combine two or three architectures on a single 680MB CD there
remains very little space after Debian Installer and base system packages
have been included. For that reason multi-arch CDs are normally created as
a netinst image. For example:
2 つまたは 3 つのアーキテクチャを 680MB の CD 1 枚にまとめる場合、Debian インストーラと基本システムパッケージが含まれた後の容量はほとんどありません。そのため、マルチアーキテクチャ CD は通常 netinst イメージとして作成されます。例えば:
$ ./easy-build.sh NETINST i386 amd64 powerpc
A DVD has a lot more space and can easily include packages needed to install
a desktop environment. For example:
DVDは容量が多く、デスクトップ環境のインストールに必要なパッケージを簡単に含めることができます。例えば
$ ./easy-build.sh DVD -d kde i386 amd64
It is even possible to include source packages on a DVD, which makes it
suitable to hand out at trade shows. For example:
$ ./easy-build.sh DVD i386 amd64 source
INCLUDING CUSTOM PACKAGES, D-I COMPONENTS and D-I IMAGES
========================================================
easy-build.sh makes it relatively simple to include custom packages, both
regular packages (debs) and debian-installer components (udebs), in CD
images. The main rule to keep in mind is that if the package also exists
in the official archive, the version number of your custom package must
be higher than the one of the official package.
easy-build.sh を使うと、通常のパッケージ (debs) と debian-installer コンポーネント (udebs) の両方のカスタムパッケージを、比較的簡単に CD イメージに含めることができます。注意すべき主なルールは、そのパッケージが公式アーカイブにも存在する 場合、カスタムパッケージのバージョン番号は公式パッケージのものより高くなければならないということです。
Besides custom debian-installer components (udebs), you can also use custom
or locally built debian-installer images (kernel, initrd and related files).
カスタム debian-installer コンポーネント (udebs) の他に、カスタムまたはローカルでビルドした debian-installer イメージ (kernel、initrd、関連ファイル) を使用することもできます。
You should always ensure that udebs included on a CD match the udebs used
when building the debian-installer image you include. For example kernel
versions need to match, but also versioned dependensies between udebs
(and note that not all dependencies between udebs are declared explicitly).
And two udebs from the same source package should in principle have the
same version even if one is included in the initrd and the other is loaded
from the CD during the installation.
CD に収録されている udebs が、収録している debian-installer イメージをビルドする際に使用される udebs と一致していることを常に確認すべきです。例えばカーネルのバージョンは一致させる必要がありますが、udebs 間のバージョン依存関係も一致させる必要があります (そして、udebs 間の依存関係はすべて明示的に宣言されているわけではないことに注意してください)。また、同じソースパッケージからの 2 つの udebs は、たとえ一方が initrd に含まれ、もう一方がインストール中に CD から読み込まれたとしても、原則として同じバージョンであるべきです。
Whether custom debs and udebs are used is determined by the environment
variable LOCAL. Whether custom D-I images are used is determined by
selecting the correct source from them, in most cases that will be by
setting DI_DIR (see comments in easy-build.sh). Both variables can be set
in easy-build.sh.
カスタムdebsとudebsが使用されるかどうかは、環境変数LOCALによって決定されます。カスタムD-Iイメージが使用されるかどうかは、それらから正しいソースを選択することによって決定され、ほとんどの場合、DI_DIRを設定することによって決定されますeasy-build.shのコメントを参照。両方の変数はeasy-build.shで設定することができます。
Using custom packages
---------------------
The repository for the custom packages has the same basic structure as an
official mirror. The main difference is the category: instead of "main"
(or "contrib" or "non-free") this has to be "local". You should also make
sure to use the release codename and not the suite.
カスタムパッケージのリポジトリは、公式ミラーと同じ基本構造を持っています。主な違いはカテゴリです。"main"(または "contrib "や "non-free")ではなく、"local "でなければなりません。また、スイートではなくリリースのコードネームを使用するようにしてください。
So you get for example:
.../dists/lenny/local/binary-amd64/
.../dists/lenny/local/binary-i386/
.../dists/lenny/local/debian-installer/binary-amd64/
.../dists/lenny/local/debian-installer/binary-i386/
.../dists/sid/local/binary-amd64/
.../dists/sid/local/binary-i386/
.../dists/sid/local/debian-installer/binary-amd64/
.../dists/sid/local/debian-installer/binary-i386/
Note that debs will be taken from 'dists/$CODENAME/...' while udebs will be
taken from 'dists/$DI_CODENAME/...'. So if CODENAME and DI_CODENAME have
different values (e.g. when taking debs from testing but using D-I based on
unstable), you will need to place your custom debs and udebs under different
codenames.
debs は 'dists/$CODENAME/...' から取得されるのに対し、udebs は 'dists/$DI_CODENAME/...' から取得されることに注意してください。そのため、CODENAME と DI_CODENAME が異なる値である場合 (例えば、debs を testing から取得し、D-I を unstable ベースで使用する場合など)、カスタム debs と udebs を異なるコードネームで配置する必要があります。
The local category does not need to have a Release file, but each
'binary-<arch>' directory must have a Packages file.
ローカルカテゴリーにはReleaseファイルは必要ありませんが、各'binary-<arch>'ディレクトリにはPackagesファイルが必要です。
It is possible to have the packages themselves in a pool directory, but it
is probably easier to just place them under the 'binary-<arch>' directories.
You can group packages in subdirectories.
パッケージそのものをプールディレクトリに置くことも可能ですが、「binary-<arch>」 ディレクトリの下に置く方が簡単でしょう。パッケージはサブディレクトリにまとめることができます。
By default debian-cd will look for the "local" category in the same place
as the official mirror (as defined by the envvar MIRROR), but in most cases
it will be simpler to specify an alternative location by setting the
environment variable LOCALDEBS in your CONF.sh. In that case you can also
let easy-build.sh take care of generating an updated Packages.gz file for
each source that is used in a build by setting the envvar UPDATE_LOCAL in
easy-build.sh (see tools/Packages-gen).
デフォルトでは、debian-cd は公式ミラー (envvar MIRROR で定義) と同じ場所にある "local" カテゴリを探しますが、ほとんどの場合、CONF.sh で環境変数 LOCALDEBS を設定して別の場所を指定する方が簡単でしょう。その場合、easy-build.shでenvvar UPDATE_LOCALを設定することで、ビルドで使用される各ソースに対して更新されたPackages.gzファイルの生成をeasy-build.shに任せることもできますtools/Packages-genを参照
Example, assuming we are building for and i386 CD for lenny:
Lenny 用の i386 CD をビルドする場合の例:
1) in CONF.sh, set for example:
export MIRROR=/srv/mirror/debian
export LOCALDEBS=/srv/mirror/custom
2) create the following directories:
/srv/mirror/custom/dists/lenny/local/binary-i386
/srv/mirror/custom/dists/lenny/local/debian-installer/binary-i386
3) copy your custom debs to the first directory
4) copy your custom udebs to the second directory
5) in easy-build.sh, set:
export LOCAL=1
UPDATE_LOCAL=1
Note that debian-cd will fail if you set LOCAL but the "local" directory for
a codename/arch/section that is referenced in a build does not exist.
You will need to create the 'dists/<codename>/local' directories, but if
UPDATE_LOCAL is set, easy-build.sh will automatically create any missing
'binary-<codename>' subdirectories and (empty) Packages.gz files.
LOCAL を設定しても、ビルドで参照されるコードネーム/arch/セクションの 「ローカル」ディレクトリが存在しない場合、debian-cd は失敗することに注意してください。dists/<codename>/local' ディレクトリを作成する必要がありますが、UPDATE_LOCAL が設定されていれば、easy-build.sh は自動的に欠落している 'binary-<codename>' サブディレクトリと (空の) Packages.gz ファイルを作成します。
Using custom debian-installer images
------------------------------------
Note that the build target used and the way images are organized under the
build/dest directory by the debian-installer build system varies per
architecture. The example below should work for i386 and amd64, but may need
to be adjusted for other architectures.
使用されるビルドターゲットや、debian-installer ビルドシステムによる build/dest ディレクトリ配下のイメージの整理方法は、アーキテクチャごとに異なることに注意してください。以下の例は i386 と amd64 で動作するはずですが、他のアーキテクチャでは調整が必要かもしれません。
Example:
1) create a directory, for example:
/srv/mirror/custom/images/i386/
2) build the d-i images (in the installer/build directory) using:
$ make reallyclean; fakeroot make build_cdrom_isolinux
3) copy the images using:
$ cp -r dest/cdrom /srv/mirror/custom/images/i386/
4) in easy-build.sh, set:
export DI_DIR="/srv/mirror/custom/images/%ARCH%"
'%ARCH%' will be automatically expanded to the correct architecture whe
debian-cd is run.
'%ARCH%' は debian-cd の実行時に正しいアーキテクチャに自動的に展開されます。