MyNotes/debian-cd
rohhie 135bcde9e8 "debian-cd" にファイルをアップロード 2023-11-28 07:33:12 +09:00
..
CONF.sh "debian-cd" にファイルをアップロード 2023-11-28 07:33:12 +09:00
README.devel.txt "debian-cd" にファイルをアップロード 2023-11-26 17:46:36 +09:00
README.easy-build.txt "debian-cd" にファイルをアップロード 2023-11-26 17:46:36 +09:00
README.txt "debian-cd" にファイルをアップロード 2023-11-26 17:45:51 +09:00

README.txt

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

debian-cd
=========

Copyright 1999-2001 Raphaël Hertzog <hertzog@debian.org> and others,
2004-2019 Steve McIntyre <steve@einval.com>
This set of tools is licensed under the General Public License version
2 or any later version. You can find it in
/usr/share/common-licenses/GPL on a Debian GNU system.

Some of the ideas here (a loooong time ago) came from Steve McIntyre's
slink_cd script.

Thanks also to all the contributors on the debian-cd mailing list.

What is needed?
===============
Software:
- the apt-get (>= 0.3.11.1) tool
- perl (>= 5.004)
- bash (or another POSIX shell)
- make
- cpp
- mkisofs/genisoimage
- the perl Digest::MD5 module
- the perl Compress::Zlib module
- lynx (for text version of README.html) and todos from sysutils
  to convert docs to DOS format (although you can rip that out, too)
- if you want to generate jigdo files: jigdo-file (see below)
Other:
- apt-utils (for apt-ftparchive)
- lots of free space on your disks
- a Debian mirror, on a partition where you can write.
  If you can't write on it then you may try to use a symlink farm,
  but it's not the recommended way to build Debian CDs.


		-------------------------------
		- GENERATING DEBIAN CD IMAGES -
		-------------------------------


For the people that don't have time, here's the quick explanation
時間がない人のために、簡単に説明しましょう。
=================================================================

Edit the CONF.sh and change the PATHs for the mirror and so on.
CONF.shを編集し、ミラーのPATHなどを変更します。
$ sensible-editor CONF.sh
$ . CONF.sh
$ make distclean
$ make status
$ make official_images

However, you really should consider reading further for more information.
You can also take a look at build.sh and build_all.sh for an automated
way of building CD images. 
しかし、より詳細な情報については、さらに読むことを本当に検討すべきです。
build.shとbuild_all.shは、CDイメージの自動ビルドのためのものです。

The script easy-build.sh offers the easiest way to build a specific image
or set of images, but is still very flexible and powerful. It is the
recommended tool for building test images and for people new to debian-cd.
See the file README.easy-build for further info.
easy-build.sh スクリプトは、特定のイメージやイメージ群を構築する最も 簡単な方法を提供しますが、非常に柔軟で強力です。テストイメージのビルドや、 debian-cd を初めて使う人にお勧めのツールです。
詳細は README.easy-build をご覧ください。

How to build a CD set - step by step
====================================

If you haven't already, change to the /usr/share/debian-cd/ directory
(or, alternatively, set the variable BASEDIR in CONF.sh to point
there).
まだであれば、/usr/share/debian-cd/ディレクトリに移動してくださいあるいは、CONF.shの変数BASEDIRがそこを指すように設定してください。

The process of building a CD is composed of the following steps:
CDを作るプロセスは次のようなステップで構成されます

- first configure what is needed in CONF.sh and source it in your shell:
- まずCONF.shで必要なものを設定し、シェルでそれをソースにしますCONF.shで必要なものを設定し、シェルでそれをソースにします

    $ . CONF.sh

  The exported environment variables will be used by all the
  tools involved here (Makefiles, perl scripts, shell scripts).
  エクスポートされた環境変数は、ここに関係するすべてのツールMakefile、perlスクリプト、シェルスクリプトで使用されます。

  If you want to build CD images for more than one arch, you will
  have to build them one after the other (you may use a shell
  script for this).
  複数のアーキ用のCDイメージをビルドしたい場合は、1つずつビルドする必要がありますシェルスクリプトを使用することもできます。

  Note that the temporary dir must be on the same device as the
  mirror because debian-cd uses hardlinks for generating an image 
  tree. If you can't do this, you'll have to use a symlink farm.
  The symlink farm is explained at the end of this README.
  debian-cd はイメージツリーの生成にハードリンクを使用されるため、 一時ディレクトリはミラーと同じデバイス上になければならないことに注意してください。これができない場合は、シンボリックリンクファームを使用する必要があります。シンボリックリンクファームについては、この README の最後で説明しています。

  Keep in mind that the environment variables will stay in the
  environment after your debian-cd run, and may interfere with
  other program using the same variables (e.g. kernel-package).
  So if you want to be 100% safe, run debian-cd in a
  separate shell that you can leave after you're done.
  環境変数は debian-cd の実行後も環境に残り、同じ変数 (例えば kernel-package) を使用している他のプログラムに干渉する可能性があることに留意してください。そのため、100% 安全を期すなら、debian-cd を別のシェルで実行し、終了後にそのシェルから離れるようにしてください。

- then we clean everything that may still be there from previous runs:
- その後、以前の走行から残っている可能性のあるものをすべてきれいにします:

    $ make distclean

- then we initialize the temporary directory used for the build:
- 次に、ビルドに使用される一時ディレクトリを初期化します:

    $ make status

  If this has failed then this will be automatically launched:
  これが失敗した場合は、自動的に起動されます:

    $ make correctstatus

  Note however that "make status" should never fail if it is
  used for building a CD set for the stable release...
  ただし、"make status "が安定版リリースのCDセット構築に使用されるのであれば、失敗することはないはずです...。

- now you can decide what you want on your CDs
- CDに何を入れたいか、自分で決められるようになりました。

  Note that task files are always taken from the subdirectory in ./tasks/
  that matches the CODENAME environment variable. At the beginning of a
  build these "static" task files are copied to the working directory.
  During the build some additional task files - that are referenced from
  the static task files - are generated automatically using scripts from
  the ./tools directory.
  タスクファイルは常に環境変数CODENAMEにマッチする ./tasks/のサブディレクトリから取得されることに注意してください。ビルドの開始時に、これらの「静的」タスクファイルは作業ディレクトリにコピーされます。ビルド中に、./toolsディレクトリのスクリプトを使用して、静的タスクファイルから参照されるいくつかの追加タスクファイルが自動的に生成されます。

  Examples:
  その例:

    $ make packagelists TASK=Debian-generic COMPLETE=1

  or
  または

    $ make packagelists TASK=Debian-kde COMPLETE=0

  or
  または

    $ export NONFREE=1; make packagelists TASK=your-task-here COMPLETE=1

  or for something like an official image for the USA (without non-free):
  または、アメリカの公式イメージのようなもの(ノンフリーは除く):

    $ make packagelists COMPLETE=1

  .... take a look at the file tasks/* to see the options you can have :)
  .... tasks/*というファイルを見て、オプションを見てみましょう。 :)

  You can change the behaviour of this command with the following
  variables:
  - if NONFREE is set, then packages from non-free will be allowed
    (NONFREE must be exported to all sub-shells)
  - if EXTRANONFREE is set, then non-free packages will be included
    on an extra CD (the last CD in fact). Don't use NONFREE and
    EXTRANONFREE at the same time!
    (EXTRANONFREE must be exported to all sub-shells)
  - if COMPLETE is set, all packages that are not listed in the
    selected task file will be included at the end
  - setting INSTALLER_CD will use an appropriate task file for
    building small CDs (businesscard and netinst)
  このコマンドの動作は、以下の変数で変更できます:
  - NONFREE が設定されている場合、non-free からのパッケージが許可されます (NONFREE はすべてのサブシェルにエクスポートされなければなりません)。
  - EXTRANONFREE が設定されている場合、non-free のパッケージは追加 CD (実際には最後の CD) に含まれます。NONFREEとEXTRANONFREEを同時に使用しないでください (EXTRANONFREEはすべてのサブシェルにエクスポートされなければなりません)
  - COMPLETEが設定されている場合、選択されたタスクファイルにリストされていないすべてのパッケージが最後に含まれます。
  - INSTALLER_CDを設定すると、スモールCDbusinesscardとnetinstのビルドに適切なタスクファイルが使用されます。

- now, we'll start making temporary trees:
- では、仮のツリーを作り始めます:

    $ make image-trees

  This will first work sort the list of packages for each architecture
  into order so that standard, required, important and base packages
  are placed first, then other packages will be added in the order
  given modulo dependency ordering. Once the sorted list is created,
  the different architecture lists will be merged (if more than one
  architecture is selected).
  これはまず、各アーキテクチャのパッケージ一覧を、標準、必須、重要、基本パッケ ージが最初に来るようにソートします。ソートされたリストが作成されると、異なるアーキテクチャのリストは (複数のアーキテクチャが選択されている場合) マージされます。

  Then the code will start laying out temporary directory trees for
  the CDs. In order, this includes the following steps:
  それから、コードはCDのための一時的なディレクトリツリーを作り始めます。順を追って説明すると、次のような手順です

  - Creating an empty directory layout
  - Generating an image label and volume ID and other metadata such as
    debian-installer information files
  - Add documentation and installation/upgrade tools
  - Add Release files and other archive metadata
  - Make the image bootable for the selected architecture(s)
  - Start generating the md5sum.txt file
  - 空のディレクトリレイアウトの作成
  - イメージラベルとボリューム ID、および debian-installer 情報ファイルなどのメタデータの生成
  - ドキュメントやインストール/アップグレードツールの追加
  - リリースファイルやその他のアーカイブメタデータを追加
  - 選択したアーキテクチャでイメージを起動可能にする
  - md5sum.txt ファイルの生成を開始

  If you want to use boot-floppies built by yourself you can add
  a parameter BOOTDISKS=<dir> which specifies the directory where
  they are. Note that $BOOTDISKS/current must be a symlink to the
  real directory and it must follow the same setup as the FTP
  mirror. Your boot-floppies must also be on the same partition as
  your mirror and temporary dir (hardlinks are used here too).
  自分でビルドしたブートフロッピーを使用したい場合は、BOOTDISKS=<dir> というパラメータを追加して、ブートフロッピーがあるディレクトリを指定してください。BOOTDISKS/currentは実際のディレクトリへのシンボリックリンクでなければならず、FTPミラーと同じセットアップに従わなければならないことに注意してください。ブートフロッピーもミラーや一時ディレクトリと同じパーティションになければなりません (ここでもハードリンクが使用されます)。

  Once the disc tree has all of this start data, we start filling the
  directory trees with packages from the sorted list. The size of the
  image to be created is set using DISKTYPE in CONF.sh; if the
  standard sizes do not match what you're after, use DISKTYPE=CUSTOM
  and specify your own size using CUSTOMSIZE. The algorithm is simple
  for adding packages:
  ディスクツリーにこの開始データがすべて揃ったら、ソートされたリストからディレクトリツリーにパッケージを詰め始めます。作成するイメージのサイズは、CONF.sh の DISKTYPE で設定します。標準のサイズが希望に合わない場合は、DISKTYPE=CUSTOM を使用し、CUSTOMSIZE でサイズを指定してください。パッケージを追加するアルゴリズムは簡単です:

  - link the package into the temporary disc tree
  - append the metadata to the appropriate Packages or Sources file
  - add md5sum information for the added file(s) to the md5sum.txt file
  - パッケージを一時ディスクツリーにリンクする
  - メタデータを適切な Packages または Sources ファイルに追加する
  - 追加したファイルのmd5sum情報をmd5sum.txtファイルに追加する

  This continues until the temporary tree grows one package *too
  large* for the selected image size. At that point, we roll back the
  last set of changes associated with that package. Then:
  これは、テンポラリツリーが、選択したイメージ容量に対して *大きすぎる* パッケージに拡張されるまで続きます。その時点で、そのパッケージに関連する最後の変更セットをロールバックします。そして:

  - check if the disc contains all the packages needed to install a base system
  - finish off the Release file, using the checksums of the
    Packages/Sources files we generated
  - finish off the md5sum.txt file
  - ディスクにベースシステムのインストールに必要なパッケージがすべて含まれているかチェックする
  - 生成したPackages/Sourcesファイルのチェックサムを使用して、Releaseファイルを完成させる
  - md5sum.txtファイルを完成させる

  Next, we continue to the next disc tree, using the same process:
  start it, copy packages in until they overflow, roll back and
  finish. And repeat. Each time a package is found to be too large to
  fit inside an image, it will be kept back and will (obviously) be
  the first package placed into the next disc tree.
  続いて次のディスクツリーに進み、同じプロセスを使用します。ディスクツリーを起動し、パッケージがあふれるまでコピーし、ロールバックして終了します。これを繰り返します。パッケージが大きすぎてイメージ内に収まらないことが判明するたびに、そのパッケージは戻され、(明らかに)次のディスクツリーに置かれる最初のパッケージになります。

- now we can create the images:
- これでイメージを作ることができます:

    $ make images

  If you don't have enough space for all images, you can generate 
  only one image (of the second CD for example) with:
  すべてのイメージを保存するのに十分なスペースがない場合は、たとえば2枚目のCDのイメージを1枚だけ生成することができます

    $ make image CD=2

  Note: here we use "make images", but you could as well use
  "make official_images" since the latter is the same as the former
  with some dependencies on targets that you already launched
  (make bootable packages sources).
  注:ここでは "make images"を使用していますが、"make official_images"を使用することもできます。後者は前者と同じで、すでに起動したターゲットに依存する部分があるからですmake bootable packages sources。

- if you want to generate checkum files with the checksums of the
  images you can do it with:
- もし、イメージのチェックサムでチェックサムファイルを生成したいのであれば、これでできます:

    $ make imagesums

Official images
===============

If you use make official_images you're building CD images that have
the same properties than official CD images but they still doesn't
have the name of "Official Images". The name of the images is given
by setting the OFFICIAL and DEBVERSION environment variable (check
CONF.sh). 
make official_imagesを使用されると、公式CDイメージと同じプロパティを持つCDイメージがビルドされますが、まだ「公式イメージ」という名前はありません。イメージの名前は環境変数OFFICIALとDEBVERSIONを設定することで与えられますCONF.shを確認してください。

Please never ever use the "Official" name for a CD image that you
built yourself. The only images that can be called "Official" are the
ones built by Debian itself and which are provided on Debian's
servers.
自分でビルドした CD イメージには、決して「公式」という名前を使わないでください。「公式」と呼べるイメージは、Debian 自身がビルドし、Debian のサーバで提供されているものだけです。

The default configuration shipped with this package will automatically
name the images "Unofficial". CD will work exactly in the same way
with all Debian tools, only the label is different. That means you
can use build.sh and build_all.sh to build your "Unofficial" images
without modifying anything.
本パッケージに同梱されているデフォルトの設定では、イメージに自動的に 「Unofficial」という名前が付けられます。CD は、ラベルが異なるだけで、すべての Debian ツールと全く同じように動作します。つまり、build.sh や build_all.sh を使用して、何も変更せずに「非公式」イメージをビルドできます。


Local packages
==============

If you provide some custom made packages and you want to put them on
Debian CD set you can do it. Simply put your packages in
$MIRROR/dists/$CODENAME/local/binary-$ARCH/<section>.
The organization of this sub-tree is the same than what you can find
in the main, contrib or non-free part. You may use different section
names if you want. Be sure to create Packages files (and Sources.gz if you
include sources).
もしあなたがカスタムパッケージを提供し、それを Debian CD セットに 組み込みたいのであれば、それは可能です。あなたのパッケージを $MIRROR/dists/$CODENAME/local/binary-$ARCH/<section> に置くだけです。このサブツリーの構成は、main、contrib、non-free にあるものと同じです。必要であれば、異なるセクション名を使用しても構いません。必ずPackagesファイル(ソースを含む場合はSources.gz)を作成してください。

You can also put your local packages under $MIRROR/pool/local (just a new
facility for people who don't want packages under dists/). To include local
packages, the LOCAL environment variable must be set to "1" while building
the CDs.
ローカルパッケージを $MIRROR/pool/local 配下に置くこともできます (dists/ 配下にパッケージを置きたくない人のための新しい機能です)。ローカルパッケージを含めるには、CD をビルドするときに環境変数 LOCAL を "1" に設定しなければなりません。

You can also set the LOCALDEBS environment variable, and it will be used
instead of MIRROR when looking for local packages.
LOCALDEBS環境変数を設定すると、ローカルパッケージを探すときにMIRRORの代わりに使用されます。


Additional targets
==================

Jigdo
-----
You may also want to make the CD images available in jigdo format.
Jigsaw Download, the successor to the Pseudo-Image Kit.
See https://www.debian.org/CD/jigdo-cd/ for more information on jigdo.
CDイメージをjigdo形式で利用できるようにすることもできます。
Jigsaw DownloadはPseudo-Image Kitの後継です。
jigdoについては https://www.debian.org/CD/jigdo-cd/ 参照。

Set the DOJIGDO and related variables in CONF.sh. This is no separate target
for jigdo, merely a modification of the "images" targets. You can choose
only .iso generation (default), only .jigdo generation (for highly reduced
disk usage), or both .iso and .jigdo generation.
CONF.shでDOJIGDOと関連する変数を設定します。これは単に "images"ターゲットを変更するだけで、jigdo用の独立したターゲットではありません。.iso生成のみデフォルト、.jigdo生成のみディスク使用量を大幅に削減、.isoと.jigdo生成の両方を選択できます。

To generate the jigdo files and templates, you need an
appropriately-patched version of mkisofs/genisoimage, as shipped in
Debian Etch.
jigdoファイルとテンプレートを生成するには、Debian Etchに同梱されているmkisofs/genisoimageの適切なパッチが適用されたバージョンが必要です。

The checksums files generated by the "imagesums" target will contain
the checksums of all generated images, regardless of the DOJIGDO
setting. If no full iso image is available, the checksums will be
extracted from the .template files. A note in the Makefile shows how
the original file size can be extracted from the .template in a
similar way.
"imagesums"ターゲットが生成するチェックサムファイルには、DOJIGDOの設定に関係なく、生成されたすべてのイメージのチェックサムが含まれます。完全な ISO イメージがない場合、チェックサムは .template ファイルから抽出されます。Makefile の注釈に、同様の方法でオリジナルのファイルサイズを .template から抽出する方法が示されています。

About jigdo "fallback servers":
jigdoの「フォールバックサーバー」について

jigdo works by downloading individual packages and other files from a
normal Debian mirror, and using them to regenerate a CD/DVD image. 
However, the content of Debian mirrors changes over time, files are
added and removed. But jigdo must have access to all files needed for
the image it has to regenerate, even those that have been removed from
the normal Debian mirrors.
jigdo は通常の Debian ミラーから個々のパッケージやその他のファイルを ダウンロードし、それを使用して CD/DVD イメージを再生成することで動作します。 しかし、Debian ミラーの内容は時間とともに変化し、ファイルが追加されたり削除されたりします。しかし、jigdo は再生成するイメージに必要なすべてのファイルにアクセスできなければなりません。

A fallback server contains a backup of the Debian FTP space for the
moment the .jigdo files were generated. This backup is made available
under a certain URL which is written to the .jigdo files. jigdo will
*only* revert to the fallback server after an unsuccessful attempt to
retrieve a file from the normal user-selected Debian mirror, so the
bandwidth requirements are modest.
フォールバックサーバには、.jigdo ファイルが生成された時点の Debian FTP 空間のバックアップが含まれています。このバックアップは、.jigdo ファイルに書き込まれた特定の URL で利用できるようになります。jigdo は、ユーザが選択した通常の Debian ミラーからファイルを取得しようとして失敗した場合にのみフォールバックサーバに戻るので、必要な帯域幅はわずかです。

A fallback is even necessary for .jigdo files of the stable release,
because some files (typically documentation or boot floppies) can
change at any time.
フォールバックは、安定版リリースの.jigdoファイルにも必要です。というのも、いくつかのファイル通常はドキュメントやブートフロッピーはいつでも変更できるからです。

debian-cd allows you to automatically create a directory on disc which
is suitable for use as a fallback mirror. It is populated with hard
links to the archive contents. In CONF.sh, simply supply as
JIGDOFALLBACKPATH the name of the directory, and as JIGDOFALLBACKURLS
the URLs under which it will be made available.
debian-cd は、フォールバックミラーとして使用するのに適したディレクトリをディスク上に自動的に作成します。このディレクトリには、アーカイブの内容へのハードリンクが設定されます。CONF.sh では、単に JIGDOFALLBACKPATH としてディレクトリの名前を、JIGDOFALLBACKURLS として利用可能な URL を指定してください。

About the hook system
=====================

A hook script can be executed at different times during the CD build
process to customise your CDs. You can specify the script by setting
the various HOOK variables in CONF.sh; look there for more information
about what hook points are available.
フックスクリプトは、CDのビルドプロセス中に異なるタイミングで実行され、CDをカスタマイズすることができます。CONF.sh で様々な HOOK 変数を設定することで、スクリプトを指定することができます。

About the symlink farm
======================

If you don't have write access on the disk where you have the mirror
or if for another reason hardlink cannot be used, you can try to
use a symlink farm. Instead of having real files, your temporary tree
will be filled with symlinks that mkhybrid will change into files when
it will build the image. You'll need to use a special options. You
have 2 lines of options in CONF.sh as examples.
ミラーのあるディスクに書き込みアクセスがない場合、あるいは他の理由でハードリンクが使用できない場合は、シンボリックリンクファームを使用してみてください。実際のファイルを持つ代わりに、一時ツリーをシンボリックリンクで満たし、mkhybridがイメージを構築する際にファイルに変更します。特別なオプションを使用する必要があります。例として、CONF.shに2行のオプションがあります。

I've never tested the symlink farm ... it may well generate unusable
images. Don't use it for ISO images that will used by many users.
私はシンボリックリンクのファームをテストしたことがありません...使用不可能なイメージを生成する可能性があります。多くのユーザーに使用されるISOイメージには使わないでください。

Note that you will also need a patched mkhybrid that does support the
-F option. Have a look here about it :
Fオプションをサポートするmkhybridのパッチも必要です。詳しくはこちらをご覧ください
https://www.chiark.greenend.org.uk/~stevem/DebianCD/