aboutsummaryrefslogtreecommitdiff
path: root/ja_JP.eucJP/man/man7/release.7
blob: 636c7e2aac7b3c32260d6cba2dc780c2e09518be (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
.\" Copyright (c) 2002 Murray Stokely <murray@FreeBSD.org>
.\" All rights reserved.
.\"
.\" Redistribution and use in source and binary forms, with or without
.\" modification, are permitted provided that the following conditions
.\" are met:
.\" 1. Redistributions of source code must retain the above copyright
.\"    notice, this list of conditions and the following disclaimer.
.\" 2. Redistributions in binary form must reproduce the above copyright
.\"    notice, this list of conditions and the following disclaimer in the
.\"    documentation and/or other materials provided with the distribution.
.\"
.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND
.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE
.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
.\" %FreeBSD: src/share/man/man7/release.7,v 1.3.2.5 2002/07/25 09:33:13 ru Exp %
.\" $FreeBSD$
.\"
.\" WORD: clean system	まっさらのシステム[release.7]
.\"
.Dd March 12, 2002
.Dt RELEASE 7
.Os
.Sh 名称
.Nm release
.Nd "リリース構築基盤"
.Sh 解説
.Fx
は、ユーザが
.Fx
オペレーティングシステムのリリース全てを作成できるような完全な構築環境を
提供しています。
リリースを構築するために必要なツールの全ては、 CVS リポジトリ中の
.Pa src/release
に揃っています。
実のところ、
CD-ROM を焼く際に使える ISO イメージ、インストール用フロッピ、
FTP インストール用ディレクトリの生成をはじめとして、完全なリリースを
コマンド一発で構築できます。
このコマンドは、
.Dq Li "make release"
と、うまい名前が付けられています。
.Pp
リリースを構築する前に、
.Xr build 7
の内容によく馴染んでおいてください。
また、
.Dq Li "make world"
によるソースからのシステムアップグレードの経験も必須です。
リリース構築プロセスは、
.Dq Li "make buildworld"
の結果を
.Pa /usr/obj
に置いておくことを要求します。
完全なシステムのためのオブジェクトファイルを、まっさらの
.Xr chroot 8
環境にインストールできるようにするために、これが必要となります。
リリースを進めるには、
.Xr vn 4
(vnode ディスク) デバイスドライバがカーネルに存在する
(コンパイル済み、またはモジュールとしてロードのいずれも可)
ことも必要です。
.Pp
この文書は、ソースコード管理、品質管理など、
リリースエンジニアリングプロセスに関するその他の側面は扱いません。
.Sh ターゲット
リリース用 makefile
.Pq Pa src/release/Makefile
は、かなり難解です。
ほとんどの場合、
.Cm release
ターゲットのことを考えるだけで済むと思います。
.\" XXX: Some sort of introduction to this list?  All the others have one.
.Bl -tag -width ".Cm rerelease"
.It Cm release
.Dq Li "make installworld"
を用いて、ファイルシステムの
.Xr chroot 8
環境にまっさらのシステムをインストールします。
指定したバージョンのソースコードをチェックアウトし、
.Dq Li "make world"
を用いて、まっさらの環境に完全なシステムを再構築します。
そのあとに、ディストリビューション別のパッケージング(まとめ上げ)、
インストール用フロッピディスクの構築、リリース文書の構築などの
細かいステップが続きます。
.It Cm rerelease
このターゲットは、リリース構築作業の結果を手で修正し、前の
.Dq Li "make release"
の中間結果を使い、最小のステップ数でリリースを再構築することを
想定したものです。
.It Cm floppies
新規のブートフロッピの組を作成します。
.Cm release.5 ,
.Cm release.9 ,
.Cm release.10
ターゲットを呼び、直前の
.Dq Li "make release"
のフロッピイメージを再作成します。
このターゲットは、カスタムブートフロッピの作成にもっとも良く使用されます。
.El
.Pp
.Dq Li "make release"
により呼び出されるターゲットは次のとおりです。
.Bl -tag -width ".Cm release.10"
.It Cm release.1
ディレクトリ
.Pa ${CHROOTDIR}/R
をまっさらにし、
.Xr mtree 8
を用いてシステム用のディレクトリ階層を構築します。
.It Cm release.2
システムをディストリビューション用ディレクトリにインストールします。
.It Cm release.3
.Dq crypto ,
.Dq krb4 ,
.Dq krb5
ディストリビューションをビルドおよびインストールします。
.It Cm release.4
.\" XXX: We build more than one kernel.  We build a stripped down
.\" kernel for the boot media in addition to a full GENERIC kernel.
.Pa GENERIC
カーネルを作り、インストールします。
.It Cm release.5
.Xr crunchgen 1
を用いて、インストール用フロッピに収容する
.Dq crunched
バイナリを構築します。
.It Cm release.6
合成ディストリビューションを構築し、
また、作成されたディストリビューションツリーを掃除しきれいにします。
.It Cm release.7
組み立てられたディストリビューションツリーの tarball を
生成します。
.It Cm release.8
ソースディストリビューションを作成します。
.It Cm release.9
boot フロッピ、MFS root フロッピを生成します。
.It Cm release.10
fixit フロッピを生成します。
.It Cm ftp.1
FTP インストールに適切な領域を
.Pa ${CHROOTDIR}/R/ftp
に整えます。
.It Cm cdrom.1
CD-ROM イメージ構築に適切な領域を
.Pa ${CHROOTDIR}/R/cdrom
に整えます。
.It Cm iso.1
CD-ROM リリース領域から ISO イメージを 2 つ構築します (インストール用と
.Dq live
ファイルシステムの 2 つ)。
デフォルトでは無効になっています。
以下の
.Va MAKE_ISOS
を参照してください。
.It Cm doc.1
.Fx
ドキュメンテーションプロジェクトのソースドキュメント (SGML, XML) を
リリースに含める HTML / テキストドキュメントに変換するために
必要なツール全てを構築します。
また、現在存在するユーザドキュメントも構築、インストールします。
これには、Handbook, FAQ, article などが含まれます。
.It Cm doc.2
リリースドキュメントを構築します。
これには、リリースノート、ハードウエアガイド、インストール作業説明書
(installation instructions) が含まれます。
.El
.Sh 環境変数
指定しなければならない環境変数は以下のとおりです。
.Bl -tag -width ".Va RELEASETAG"
.It Va CHROOTDIR
.Xr chroot 8
環境として、全リリース構築に使用するディレクトリ。
.\" XXX: I recommend against hardcoding specific numbers like "2.3" here;
.\" XXX: perhaps it should be replaced with something to the effect of
.\" XXX: "we don't know how much space you'll need, but make sure you have
.\" XXX: at least 3 GB to be safe" (I know i'm still hardcoding a number,
.\" XXX: but at least it looks less like a decree and more like an estimate.
i386 アーキテクチャの場合、これが存在するファイルシステムには
少なくとも 2.3GB の空き領域が必要です。
.It Va BUILDNAME
構築するリリースの名前。
この名前は、
.Pa sys/conf/newvers.sh
の中で
.Va RELEASE
の値を設定するのに使用します。
この値は
.Xr uname 1
の出力を変更します。
.It Va CVSROOT
.Fx
CVS リポジトリの位置です。
このパス名は、実システムルートから参照され、
.Xr chroot 8
されたディレクトリツリーのルートからの参照では
.Em ありません。
.It Ev RELEASETAG
構築するリリースに相当する CVS タグ。
未定義の場合、CVS ツリーの
.Dv HEAD
(
.Dq "-CURRENT スナップショット"
) から構築されます。
.El
.Pp
オプションの変数は次のとおりです。
.Bl -tag -width ".Va RELEASEDISTFILES"
.It Va CVSCMDARGS
.Xr cvs 1
のコマンド
.Ic checkout
と
.Ic update
への追加の引数です。
例えば、この変数を
.Dq Li "-D '01/01/2002 00:00:00 GMT'"
に設定して
.Dq Li "make release"
または
.Dq Li "make rerelease"
すると、
.Xr cvs 1
はそれぞれ
2002 年 1 月 1 日 00:00:00 GMT のソースを
チェックアウトまたはアップデートするよう
.Xr cvs 1
に指示します。
.It Va LOCAL_PATCHES
.Pa /usr/src
に対するパッチファイル。
このパッチは、リリース構築を開始する前に、
.Xr chroot 8
環境で適用されます。
.It Va PATCH_FLAGS
パッチファイル
.Va LOCAL_PATCHES
を適用する際に用いる
.Xr patch 1
コマンドに渡す引数。
.It Va LOCAL_SCRIPT
.Xr chroot 8
環境で、ローカルパッチ適用直後に実行されるスクリプト。
.It Va MAKE_ISOS
これを定義した場合、CD-ROM ステージのディレクトリの内容から、
ブータブル ISO CD-ROM イメージを生成します。
.It Va NODOC
.Dq Li YES
と設定した場合、
.Fx
ドキュメンテーションプロジェクトの SGML ベースのドキュメントを生成しません。
しかしながら、
.Pa src/share/doc
にある最小のドキュメンテーションセットから
.Dq doc
ディストリビューションが依然として作成されます。
.It Va NOPORTS
.Dq Li YES
と設定した場合、Ports Collection はリリースから省略されます。
.It Va NOPORTREADMES
これを定義した場合、
Ports Collection の各 port に対する readme ファイルを作成しません。
デフォルトの動作は、
.Dq Li "make release"
が
.Dq Li "make readmes"
を
.Pa ${CHROOTDIR}/usr/ports
から実行するというものであり、莫大な時間を費すことになります。
.It Va RELEASEDISTFILES
ports 用として、リリース構築に必要となる
ディストリビューションファイルが存在するディレクトリです。
これにより、低速なリンク経由で
distfiles をダウンロードする際に費やされる莫大な時間を
節約することができます。
.It Va RELEASENOUPDATE
.Dq Li "make rerelease"
の際にこの変数の値を設定した場合、
.Dq Li "cvs update"
によるソースコード更新を行ないません。
.It Va TARGET_ARCH
ターゲットとなるマシンプロセッサアーキテクチャ。
この環境変数は
.Dq Nm uname Fl p
の出力と同じものです。
異なるアーキテクチャ用にクロスビルドするにはこの環境変数を設定してください
.It Va TARGET
ターゲットとなるハードウェアプラットフォーム。
この環境変数は
.Dq Nm uname Fl m
の出力と同じものです。
ターゲットアーキテクチャをクロスビルドするのに必要な変数です。
例えば、PC98 マシン用にクロスビルドを行うには
.Va TARGET_ARCH Ns = Ns Li i386
と
.Va TARGET Ns = Ns Li pc98
が必要です。
.El
.Sh 関連ファイル
.Bl -tag -compact
.It Pa /etc/make.conf
.It Pa /usr/doc/Makefile
.It Pa /usr/doc/share/mk/doc.project.mk
.It Pa /usr/ports/Mk/bsd.port.mk
.It Pa /usr/ports/Mk/bsd.sites.mk
.It Pa /usr/share/examples/etc/make.conf
.It Pa /usr/src/Makefile
.It Pa /usr/src/Makefile.inc1
.It Pa /usr/src/release/Makefile
.It Pa /usr/src/release/${arch}/drivers.conf
.It Pa /usr/src/release/${arch}/boot_crunch.conf
.It Pa /usr/src/release/${arch}/fixit_crunch.conf
.El
.Sh 使用例
以下のコマンド列は
.Fx 4.5
release を構築する際に使用したものです。
.Bd -literal -offset indent
cd /usr
cvs co -rRELENG_4_5_0_RELEASE src
cd src
make buildworld
cd release
make release CHROOTDIR=/local3/release BUILDNAME=4.5-RELEASE \\
  CVSROOT=/host/cvs/usr/home/ncvs RELEASETAG=RELENG_4_5_0_RELEASE
.Ed
.Pp
これらのコマンドを実行すると、FTP ディストリビューション用と、
CD-ROM ディストリビューション用として使える完全なシステムが
ディレクトリ
.Pa /local3/release/R
にできます。
.Pp
次のコマンド列は、ローカルで修正したソースツリーの
.Dq "-CURRENT スナップショット"
を構築するために使用できます。
.Bd -literal -offset indent
cd /usr/src
cvs diff -u > /path/to/local.patch
make buildworld
cd release
make release CHROOTDIR=/local3/release BUILDNAME=5.0-CURRENT \\
  CVSROOT=/host/cvs/usr/home/ncvs LOCAL_PATCHES=/path/to/local.patch
.Ed
.Sh 関連項目
.Xr cc 1 ,
.Xr crunchgen 1 ,
.Xr cvs 1 ,
.Xr install 1 ,
.Xr make 1 ,
.Xr patch 1 ,
.Xr uname 1 ,
.Xr vn 4 ,
.Xr drivers.conf 5 ,
.Xr make.conf 5 ,
.Xr build 7 ,
.Xr ports 7 ,
.Xr chroot 8 ,
.Xr mtree 8
.Rs
.%T "FreeBSD Release Engineering"
.%O http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/releng/
.Re
.Rs
.%T "FreeBSD Release Engineering of Third Party Packages"
.%O http://www.FreeBSD.org/doc/en_US.ISO8859-1/articles/releng-packages/
.Re
.Rs
.%T "FreeBSD Developers' Handbook"
.%O http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/developers-handbook/
.Re
.Sh 歴史
.Fx
1.x
では、チェックリストを手でチェックしながら、
.An Rod Grimes
によりコンパイルされ、リリースが作成されました。
不完全さはさておくにしても、このチェックリストには、
ファイルシステムを使えるようにするためのこまごまとした要求が大量に
含まれており、その実行は拷問としかいいようがないものでした。
.Pp
.Fx 2.0
リリースエンジニアリングを続ける中で、
.Pa src/release/Makefile
を直して、隔離された無菌環境でリリースを構築する際の退屈な作業の
ほとんどを自動的に行なえるようにすることに、顕著な努力が払われました。
.Pp
複数のブランチにまたがる 1000 回近くの改版を経て、
.Pa src/release/Makefile
の
.Xr cvs 1
ログには、リリースエンジニアたちが経験した苦難のいくばくかを示す
生々しい歴史の記録が刻み込まれています。
.Sh 作者
.Pa src/release/Makefile
は、もともとは
.An -nosplit
.An Rod Grimes ,
.An Jordan Hubbard ,
.An Poul-Henning Kamp
が書きました。
このマニュアルページは、
.An Murray Stokely Aq murray@FreeBSD.org
が書きました。