訳註: これは作業してる最中のもので、本来、訳作業者以外は見えぬべきものです。 訳作業者以外は見ないでください。意味が反対になったりとか当然にあるから、 内容は利用しないでください。この言語への変換作業(翻訳作業)物に関しては、現在、オープンなライセンス条件ではありません。 十進240のコードのキャラクターを<240>に置換してる場合あり
Chapter30.Obtaining the sources

Table of Contents

30.1. Preparing directories
30.2. Terminology
30.3. Downloading tarballs
30.3.1. Downloading sources for a NetBSD release
30.3.2. Downloading sources for a NetBSD stable branch
30.3.3. Downloading sources for a NetBSD-current development branch
30.4. Fetching by CVS
30.4.1. Fetching a NetBSD release
30.4.2. Fetching a NetBSD stable branch
30.4.3. Fetching the NetBSD-current development branch
30.4.4. Saving some cvs(1) options
30.5. Sources on CD (ISO)

あなたのローカルディスクから NetBSD ソースを読んだり、 システムや部分を構築するために、 NetBSD ソースのダウンロードが必要です。この章では、いくつか異なる方法での NetBSD ソース 入手の方法を説明しますが、とはいえ、好ましいのは、 tarballs を入手してから、 cvs(1) によってアップデートする方法です。

30.1.Preparing directories

カーネルおよびユーザーランドのソースは、通例 /usr/src に置かれます。 このディレクトリーは NetBSD インストールの default では存在せぬゆえ 最初に作る必要があります。それはシステムディレクトリーの中なので、 ディレクトリーの作成には root アクセスが必要で、 通常ユーザーアカウントが書くことができるように手配します。デモ目的で、 非-root ログインは carlo と仮定します。 それはあなたのシステムの有効なログイン名に置き換えてください:

$ su
Password: *****
# mkdir /usr/src
# chown <carlo> /usr/src

また、 X11R6 のソースが欲しいなら、 /usr/xsrc の支度ができて:

# mkdir /usr/xsrc
# chown <carlo> /usr/xsrc

どうか注意として、続いて行う ステップには、 root でのアクセスは必要がなく推奨もしません、ので、 この準備ステップは最初に完了してください。全ての CVS 操作は 通常のユーザーのユーザーで行えて(および、行うべきで)、もはや root 特権は 不要です:

# exit
$ 

30.2.Terminology

必要とするファイルの取得またはダウンロードを始める前に、 Formal releases, Maintenance branches および他の関連する用語の定義を知りたいことでしょう 。その情報は NetBSD release glossary and graphs の下にあります。

30.3.Downloading tarballs

時折、速い tarball のダウンロードをして、それから cvs(1) でアップデートを続けることがあります。 tarballs ( tar(1) を御覧ください) のダウンロードは、 ftp.NetBSD.org (または他のミラー) から 沢山のリリースあるいはブランチで行うことができます。

tarballs がたまにアップデートされるまでだけ割戻しがあり、通常、3日ごとです。

また、註として、これらの tarballs は CVS ディレクトリーが入っているので、 それで、ダウンロードしたその後、 cvs(1) を使ってソースツリーのアップデートができて、 CVS の節に説明されています。

30.3.1.Downloading sources for a NetBSD release

特定のリリースのソースの tarball ファイルは、 ftp.NetBSD.org (またはミラー)の /pub/NetBSD/NetBSD-<RELEASE-NUMBER>/source/sets/ の下にあり、 <RELEASE-NUMBER> は取得したいリリース (例えば 4.0) です。

tarballs を使った NetBSD リリースのソースを取得したいなら、簡単にやって:

$ ftp -i ftp://ftp.NetBSD.org/pub/NetBSD/NetBSD-4.0/source/sets/
Trying 2001:4f8:4:7:2e0:81ff:fe21:6563...
Connected to ftp.NetBSD.org.
220 ftp.NetBSD.org FTP server (NetBSD-ftpd 20070809) ready.
331 Guest login ok, type your name as password.
[...]
250 CWD command successful.
250 CWD command successful.
250 CWD command successful.
ftp> mget *.tgz
local: gnusrc.tgz remote: gnusrc.tgz
229 Entering Extended Passive Mode (|||58302|)
150 Opening BINARY mode data connection for 'gnusrc.tgz' (79233899 bytes).
[...]
ftp> quit
221-
    Data traffic for this session was 232797304 bytes in 5 files.
    Total traffic for this session was 232803039 bytes in 6 transfers.
221 Thank you for using the FTP service on ftp.NetBSD.org.

いま 5 ファイルあるべきで:

$ ls *.tgz
gnusrc.tgz      sharesrc.tgz    src.tgz         syssrc.tgz      xsrc.tgz

now 全ての展開が必要で:

$ foreach file (*.tgz)
?    tar -xzf $file -C /usr/src
? end

30.3.2.Downloading sources for a NetBSD stable branch

$ ftp -i ftp://ftp.NetBSD.org/pub/NetBSD/NetBSD-release-4-0/tar_files/src/
Trying 2001:4f8:4:7:2e0:81ff:fe21:6563...
Connected to ftp.NetBSD.org.
220 ftp.NetBSD.org FTP server (NetBSD-ftpd 20070809) ready.
331 Guest login ok, type your name as password.
[...]
250 CWD command successful.
250 CWD command successful.
250 CWD command successful.
250 CWD command successful.
ftp> mget *.tar.gz
local: bin.tar.gz remote: bin.tar.gz
229 Entering Extended Passive Mode (|||56011|)
150 Opening BINARY mode data connection for 'bin.tar.gz' (914202 bytes).
[...]
ftp> quit
221-
    Data traffic for this session was 149221420 bytes in 22 files.
    Total traffic for this session was 149231539 bytes in 23 transfers.
221 Thank you for using the FTP service on ftp.NetBSD.org.

いま、 22 ファイルあるべきで:

$ ls *.tar.gz
bin.tar.gz          doc.tar.gz          libexec.tar.gz      tools.tar.gz
config.tar.gz       etc.tar.gz          regress.tar.gz      top-level.tar.gz
contrib.tar.gz      games.tar.gz        rescue.tar.gz       usr.bin.tar.gz
crypto.tar.gz       gnu.tar.gz          sbin.tar.gz         usr.sbin.tar.gz
dist.tar.gz         include.tar.gz      share.tar.gz
distrib.tar.gz      lib.tar.gz          sys.tar.gz

全て展開する必要があり:

$ foreach file (*.tar.gz)
?   tar -xzf $file -C /usr/src
? end

30.3.3.Downloading sources for a NetBSD-current development branch

NetBSD-current tarballs をダウンロードするには、 /pub/NetBSD/NetBSD-current/tar_files/src の下に位置し、 単に前の節と同じステップをたどりますが、しかし、 いまは異なるディレクトリー。

また、 X11R6 のソースを取得したい場合は、 /pub/NetBSD/NetBSD-current/tar_files/xsrc の下にあります。

30.4.Fetching by CVS

CVS (Concurrent Versions System) は NetBSD ソースツリーの取得や、 NetBSD ソースへの変更について、 NetBSD ソースツリーを最新に維持するために使えます。 3つのツリーが保守されていて、 cvs(1) を、それらの入手や、それらを最新版に維持するために使うことができます:

現在メンテナンスされているブランチのリストは src/doc/BRANCHES の下にあります( Release branches 節の Status の項目を見てください)。

anonymous CVS 経由で NetBSD ソースの initial (full) チェックアウトをする前に、最初に いくつか環境変数を設定する必要があります。 C シェルでは type:

$ setenv CVS_RSH ssh
$ setenv CVSROOT anoncvs@anoncvs.NetBSD.org:/cvsroot

または、同じことが bourne シェルでは:

$ export CVS_RSH="ssh"
$ export CVSROOT="anoncvs@anoncvs.NetBSD.org:/cvsroot"

下の例中では、空ディレクトリーを取り除くのに -P オプションもつかわれます。

30.4.1.Fetching a NetBSD release

リリースは特定の versions のソースファイルのセットで、 一度リリースされると、 over time 変更はされません。

特定のリリースから NetBSD (カーネルおよびユーザーランド) ソースを手に入れるには、 上の準備が終わった後、次のコマンドを run :

$ cd /usr
$ cvs checkout -r <BRANCH> -P src

<BRANCH> は checked out される リリースブランチで、例えば、 netbsd-3-1-RELEASE または netbsd-4-0-RELEASE 。 異なるパッチレベルのを取得したいなら、 netbsd-3-0-1-RELEASE または netbsd-3-0-2-RELEASE を用います。

例えば、 netbsd-4-0-RELEASE を取得するには、これを使って:

$ cvs checkout -r netbsd-4-0-RELEASE -P src

X11R6 ソースを取得するには、 xsrc モジュールを単に checkout します。例えば:

$ cvs checkout -r netbsd-4-0-RELEASE -P xsrc

30.4.2.Fetching a NetBSD stable branch

NetBSD stable ブランチは Maintenance branches とも呼ばれます。どうか Section30.2, “Terminology” を見てください。

もし、 stable ブランチを追いかけるなら、 ブランチ名を cvs(1) -r オプションに渡してください。

例えば、最も最近のバージョンの netbsd-4 を取得したいなら、単にこのタグを使い:

$ cd /usr
$ cvs checkout -r netbsd-4 -P src

および、 xsrc モジュールには:

$ cvs checkout -r netbsd-4 -P xsrc

stable ブランチからチェックアウトしたソースが /usr/src にあり、 最新の security-fixes and bug-fixes を手に入れるために それらをアップデートしたいなら、 run:

$ cd /usr/src
$ cvs update -Pd

同じことが xsrc モジュールに適用できますが、そのばあい、最初に、作業ディレクトリーを /usr/xsrc に変更する必要があります。

Caution!

正しく、そして望んだブランチタグの選択に気を付け確実に行ってください、 そうすると図らずもあなたのソースツリーを downgrade(ダウングレード) することはありません。

30.4.3.Fetching the NetBSD-current development branch

NetBSD-current ソースを手に入れるには、 -r <BRANCH> を無視して、 -A で置き換えてください:

$ cd /usr
$ cvs checkout -A -P src

xsrc もまた利用可能で:

$ cd /usr
$ cvs checkout -A -P xsrc

あなたの NetBSD-current ソースツリーをアップデートするには、 -A フラグを追加して:

$ cd /usr/src
$ cvs update -A -Pd

30.4.4.Saving some cvs(1) options

cvs のいくつかのオプションを繰り返し繰り返し打ち込むことが判明するなら、 ホームディレクトリーの .cvsrc ファイルの中にいれることもできます。 チェックアウトされていて、アップデート対象のブランチのディレクトリー上で cvs update を打つだけなので便利です (-A の付加はブランチを、 -current ブランチまで逆戻り させるもので、いつも欲するものではないです!)。 unified diffs では、転送は圧縮され、 cvs update は一番静かなはず:

Example30.1..cvsrc

#update -dPA
update  -dP
rdiff   -u
diff    -u
cvs     -q

30.5.Sources on CD (ISO)

NetBSD ソースの CD-ROM イメージのダウンロード(そしてたぶん焼く)が好ましいなら、 sourcecd-<RELEASE-NUMBER>.iso を ftp.NetBSD.org または他のどんなミラーからでも取得するだけです。

sourcecd-<RELEASE-NUMBER>.iso ファイルは、 /pub/NetBSD/iso/<RELEASE> の下にあって、 <RELEASE-NUMBER> は NetBSD のリリースで、 例えば、 5.1:

ftp://ftp.NetBSD.org/pub/NetBSD/iso/5.1/sourcecd-5.1.iso

次のステップは、焼く ISO イメージや、 vnconfig(8) の助けでそれをマウントするためのものです。方法の詳細は、どうか Chapter13, Using removable media を御覧ください。

/mnt の下に CD をマウントしたと仮定すると、 /mnt/source/sets に展開すべき全てがあって:

$ ls /mnt/source/sets
BSDSUM          MD5             gnusrc.tgz      src.tgz         xsrc.tgz
CKSUM           SYSVSUM         sharesrc.tgz    syssrc.tgz

ルートファイルシステム (/)に全ての tarballs は展開されるべきです。 次のコマンドでできて:

$ foreach file (*.tgz)
?   tar -xzf $file -C /
? end

その後、 /usr/src および /usr/xsrc に NetBSD ソースがあるはずです。