付録A FreeBSD の入手方法

A.1. CD および DVD セット

FreeBSD の CD および DVD のセットは以下のオンライン業者から入手できます。

A.2. FTP サイト

FreeBSD の公式な情報は anonymous FTP によって世界中のミラーサイトより入手できます。ftp://ftp.FreeBSD.org/pub/FreeBSD/ サイトは、HTTP および FTP 経由で利用できます。 これは、プロジェクトクラスタの管理者により運用されている数多くのコンピュータから構成されています。 また、GeoDNS により、近くの利用可能なミラーをユーザに提供します。

さらに、FreeBSD は以下のミラーサイトから anonymous FTP によって入手できます。 FreeBSD を anonymous FTP から入手する場合には、近くのサイトを利用するようにしてください。 "一次ミラーサイト" としてあげられているサイトには、 FreeBSD の各アーキテクチャで利用可能なすべてのバージョンのアーカイブ一式が用意されていますが、 あなたが住んでいる国や地域には、 おそらくより高速にダウンロードできるサイトが用意されています。 各国のミラーサイトには、 人気のあるアーキテクチャの最新のバージョンが置いてありますが、 FreeBSD のアーカイブ全体はもしかするとないかもしれません。 すべてのサイトは anonymous FTP 別の方法によるアクセスを提供しているサイトもあります。 各サイトで提供しているアクセス方法は、 ホスト名に続く括弧の中に記載されています。

(as of UTC)

Central Servers

Primary Mirror Sites

In case of problems, please contact the hostmaster <mirror-admin@FreeBSD.org> for this domain.

Armenia

In case of problems, please contact the hostmaster <hostmaster@am.FreeBSD.org> for this domain.

Australia

In case of problems, please contact the hostmaster <hostmaster@au.FreeBSD.org> for this domain.

Austria

In case of problems, please contact the hostmaster <hostmaster@at.FreeBSD.org> for this domain.

Brazil

In case of problems, please contact the hostmaster <hostmaster@br.FreeBSD.org> for this domain.

Czech Republic

In case of problems, please contact the hostmaster <hostmaster@cz.FreeBSD.org> for this domain.

Denmark

In case of problems, please contact the hostmaster <hostmaster@dk.FreeBSD.org> for this domain.

Estonia

In case of problems, please contact the hostmaster <hostmaster@ee.FreeBSD.org> for this domain.

Finland

In case of problems, please contact the hostmaster <hostmaster@fi.FreeBSD.org> for this domain.

France

In case of problems, please contact the hostmaster <hostmaster@fr.FreeBSD.org> for this domain.

Germany

In case of problems, please contact the hostmaster <de-bsd-hubs@de.FreeBSD.org> for this domain.

Greece

In case of problems, please contact the hostmaster <hostmaster@gr.FreeBSD.org> for this domain.

Hong Kong

Ireland

In case of problems, please contact the hostmaster <hostmaster@ie.FreeBSD.org> for this domain.

Japan

In case of problems, please contact the hostmaster <hostmaster@ie.FreeBSD.org> for this domain.

Korea

In case of problems, please contact the hostmaster <hostmaster@kr.FreeBSD.org> for this domain.

Latvia

In case of problems, please contact the hostmaster <hostmaster@lv.FreeBSD.org> for this domain.

Lithuania

In case of problems, please contact the hostmaster <hostmaster@lt.FreeBSD.org> for this domain.

Netherlands

In case of problems, please contact the hostmaster <hostmaster@nl.FreeBSD.org> for this domain.

New Zealand

Norway

In case of problems, please contact the hostmaster <hostmaster@no.FreeBSD.org> for this domain.

Poland

In case of problems, please contact the hostmaster <hostmaster@pl.FreeBSD.org> for this domain.

Russia

In case of problems, please contact the hostmaster <hostmaster@ru.FreeBSD.org> for this domain.

Saudi Arabia

In case of problems, please contact the hostmaster <ftpadmin@isu.net.sa> for this domain.

Slovenia

In case of problems, please contact the hostmaster <hostmaster@si.FreeBSD.org> for this domain.

South Africa

In case of problems, please contact the hostmaster <hostmaster@za.FreeBSD.org> for this domain.

Spain

In case of problems, please contact the hostmaster <hostmaster@es.FreeBSD.org> for this domain.

Sweden

In case of problems, please contact the hostmaster <hostmaster@se.FreeBSD.org> for this domain.

Switzerland

In case of problems, please contact the hostmaster <hostmaster@ch.FreeBSD.org> for this domain.

Taiwan

In case of problems, please contact the hostmaster <hostmaster@tw.FreeBSD.org> for this domain.

Ukraine

United Kingdom

In case of problems, please contact the hostmaster <hostmaster@uk.FreeBSD.org> for this domain.

United States of America

In case of problems, please contact the hostmaster <hostmaster@us.FreeBSD.org> for this domain.

A.3. Git の利用

A.3.1. はじめに

2020 年 12 月から、FreeBSD はソースコード、ドキュメントのすべてを管理するメインのバージョン管理システムに git を使っています。 2021 年 4 月から、FreeBSD は Ports Collection のすべてを管理するバージョン管理システムに git を使っています。

一般的には Git は開発用ツールです。 ユーザによっては、FreeBSD ベースシステムのアップデートに freebsd-update (“FreeBSD Update”)、 FreeBSD Ports Collection のアップデートに portsnap (“Ports Collection の利用”) を好んで使用するでしょう。

この章では、FreeBSD 上への Git のインストール方法および、 FreeBSD リポジトリのローカルコピーの作成方法について説明します。 Git の使用方法についても紹介します。

A.3.2. ルート SSL 証明書

12.x より前の古い FreeBSD システムは、適切なルート証明書を持っていません。 これらのシステムに security/ca_root_nss をインストールすることで、 Git は HTTPS リポジトリサーバを検証できるようになります。 ルート SSL 証明書は port からインストールできます。

# cd /usr/ports/security/ca_root_nss
# make install clean

または package からインストールしてください。

# pkg install ca_root_nss

A.3.3. インストール

package を使って Git をインストールできます。

# pkg install git

Ports Collection からも Git をインストールできます。

# cd /usr/ports/devel/git
# make install clean

A.3.4. Git の実行

ソースコードをローカルディレクトリに新しくコピーするには、git を使ってください。 このファイルのあるディレクトリのことを ワークツリー と呼びます。

コピー先のディレクトリが既に存在する場合は、git clone をはじめて使う前にディレクトリを移動するか削除してください。 git 以外の方法で用意されたディレクトリに対するリポジトリのクローンは失敗するでしょう。

Git は、リポジトリの指定に protocol://hostname/path 形式の URL を用います。 path の最初でアクセスする FreeBSD リポジトリを指定します。 リポジトリには base, doc および ports の 3 種類あります。 base は FreeBSD ベースシステムのソースコード、doc はドキュメント、そして ports は FreeBSD Ports Collection のリポジトリです。 たとえば、https://git.FreeBSD.org/src.git という URL は、https プロトコルによる src リポジトリの main ブランチを示します。

表 1. FreeBSD Git リポジトリの URL テーブル
項目Git URL

ウェブベースの src リポジトリブラウザ

https://cgit.freebsd.org/src

HTTPS 経由の読み取り専用 src リポジトリ

https://git.freebsd.org/src.git

Anonymous ssh による読み取り専用 src リポジトリ

ssh://anongit@git.freebsd.org/src.git

コミッタのための読み取り/書き込み用 src リポジトリ

ssh://git@gitrepo.freebsd.org/src.git (*)

ウェブベースの doc リポジトリブラウザ

https://cgit.freebsd.org/doc

HTTPS 経由の読み取り専用 doc リポジトリ

https://git.freebsd.org/doc.git

Anonymous ssh による読み取り専用 doc リポジトリ

ssh://anongit@git.freebsd.org/doc.git

コミッタのための読み取り/書き込み用 doc リポジトリ

ssh://git@gitrepo.freebsd.org/doc.git (*)

ウェブベースの ports リポジトリブラウザ

https://cgit.freebsd.org/ports

HTTPS 経由の読み取り専用 ports リポジトリ

https://git.freebsd.org/ports.git

Anonymous ssh による読み取り専用 ports リポジトリ

ssh://anongit@git.freebsd.org/ports.git

コミッタのための読み取り/書き込み用 ports リポジトリ

ssh://git@gitrepo.freebsd.org/ports.git (*)

  • (*) git は、リポジトリサーバ上の特別なユーザです。 リポジトリサーバは、FreeBSD.org に登録されている ssh 鍵からユーザを識別するので、変更する必要はありません。

git への移行完了後、gitrepo.freebsd.org は単純な repo.freebsd.org に変更される予定です。

利用開始には、FreeBSD リポジトリを clone してください。

# git clone -o freebsd [ -b branch ] https://git.FreeBSD.org/repo.git wcdir

ここで

  • repo は、プロジェクトリポジトリの src, ports, または doc のどれかになります。

  • branch は、使用しているリポジトリに依存します。 ports および doc では、ほとんどの変更が main ブランチで行われる一方で、src では -CURRENT の最新版を main で管理し、各 -STABLE ブランチの最新版を stable/12 (12.x) および stable/13 (13.x) で管理しています。

  • wcdir は、指定したブランチの内容が置かれるターゲットディレクトリです。 通常、ports では /usr/portssrc では /usr/src、そして doc では /usr/doc です。

  • freebsd は、使用する origin の名前です。 FreeBSD のドキュメントの慣例で、origin は freebsd とします。

この例では、FreeBSD リポジトリからシステムのソースの 'main' ブランチを HTTPS プロトコルを用いてチェックアウトし、ローカルのワーキングコピーを /usr/src に作成します。 もし、/usr/src がすでに存在していて、git により作成されたものでなければ、チェックアウトの前に、名前を変更するか削除しておいてください。 そうでなければ、git は何も行わないでしょう。

# git clone -o freebsd https://git.FreeBSD.org/src.git /usr/src

初めてチェックアウトする際には、リモートリポジトリのすべてのブランチをダウンロードするので時間がかかります。

初めてのチェックアウト後は、 以下を実行することでローカルのワーキングコピーをアップデートできます。

# cd wcdir
# git pull --rebase

この例で作成された /usr/src をアップデートするには、以下のようになります。

# cd /usr/src
# git pull --rebase

チェックアウトと比較すると、このアップデートでは変更点のあるファイルのみが転送されるので高速です。

プロジェクトのメンバーが管理する外部のミラーも存在します。 外部ミラー の節を参照してください。

A.3.5. SSH 関連情報

  • ssh://${user}@${url}/${repo}.git は、${user}@${url}:${repo}.git と書くこともできます。すなわち git 上では以下の二つの URL は両方とも使えます。

  • ssh://anongit@git.freebsd.org/${repo}.git

  • anongit@git.freebsd.org:${repo}.git

読み書き用リポジトリでも同様です。

  • ssh://git@(git)repo.freebsd.org/${repo}.git

  • git@(git)repo.freebsd.org:${repo}.git

  • gitrepo.FreeBSD.org ホスト鍵のフィンガープリントは以下です。

    • ECDSA 鍵のフィンガープリントは SHA256:seWO5D27ySURcx4bknTNKlC1mgai0whP443PAKEvvZA です。

    • ED25519 鍵のフィンガープリントは SHA256:lNR6i4BEOaaUhmDHBA1WJsO7H3KtvjE2r5q4sOxtIWo です。

    • RSA 鍵のフィンガープリントは SHA256:f453CUEFXEJAXlKeEHV+ajJfeEfx9MdKQUD7lIscnQI です。

  • git.FreeBSD.org ホスト鍵のフィンガープリントは以下です。

    • ECDSA 鍵のフィンガープリントは SHA256:/UlirUAsGiitupxmtsn7f9b7zCWd0vCs4Yo/tpVWP9w です。

    • ED25519 鍵のフィンガープリントは SHA256:y1ljKrKMD3lDObRUG3xJ9gXwEIuqnh306tSyFd1tuZE です。

    • RSA 鍵のフィンガープリントは SHA256:jBe6FQGoH4HjvrIVM23dcnLZk9kmpdezR/CvQzm7rJM です。

これらは DNS の SSHFP レコードとしても公開されています。

A.3.6. ウェブベースのリポジトリブラウザ

FreeBSD プロジェクトは、現在 cgit をウェブベースのリポジトリブラウザ (https://cgit.freebsd.org/) として使用しています。 各リポジトリの URL は、FreeBSD Git リポジトリの URL テーブル にまとめられています。

A.3.7. ユーザ向けの説明

公式の配布用のミラーから`git clone` および git pull することが推奨されています。 GeoDNS により、近くの利用可能なミラーがユーザに提供されます。

A.3.8. 開発者向けの説明

この節では、コミッタがリモートリポジトリに読み書きアクセスし、開発者や貢献者からのコミットをリモートリポジトリに反映する方法について説明します。 読み取り専用のアクセスについては、上記のユーザ向けの説明を参照してください。

A.3.8.1. 日々の利用

  • リポジトリを clone してください。

    % git clone -o freebsd --config remote.freebsd.fetch='+refs/notes/*:refs/notes/*' https://git.freebsd.org/${repo}.git

    実行すると、公式ミラーがリモートリポジトリに設定されます。

    % git remote -v
    freebsd  https://git.freebsd.org/${repo}.git (fetch)
    freebsd  https://git.freebsd.org/${repo}.git (push)
  • FreeBSD コミッタ情報の設定

    repo.freebsd.org のコミットのフックは、"Commit" フィールドが FreeBSD.org のコミッタ情報にマッチするかを確認します。 freefall 上で /usr/local/bin/gen-gitconfig.sh スクリプトを実行すると、これらの設定を簡単に行うことができます。

    % gen-gitconfig.sh
    [...]
    % git config user.name (your name in gecos)
    % git config user.email (your login)@FreeBSD.org
  • push 先の URL を設定してください。

    % git remote set-url --push freebsd git@gitrepo.freebsd.org:${repo}.git

    実行すると、最も効率的な fetch と push が別の URL に設定されます。

    % git remote -v
    freebsd  https://git.freebsd.org/${repo}.git (fetch)
    freebsd  git@gitrepo.freebsd.org:${repo}.git (push)

    繰り返しになりますが、将来的に、gitrepo.freebsd.orgrepo.freebsd.org に正規化される予定です。

  • コミットメッセージのテンプレートのフックをインストールしてください。

    % fetch https://cgit.freebsd.org/src/plain/tools/tools/git/hooks/prepare-commit-msg -o .git/hooks
    % chmod 755 .git/hooks/prepare-commit-msg

A.3.8.2. "admin" ブランチ

access および mentors ファイルは、各リポジトリの orphan ブランチ internal/admin で管理されています。

以下の例では、internal/admin ブランチをローカルブランチ admin にチェックアウトする方法を示しています。

% git config --add remote.freebsd.fetch '+refs/internal/*:refs/internal/*'
% git fetch
% git checkout -b admin internal/admin

または、admin ブランチ用にワークツリーを追加する方法もあります。

git worktree add -b admin ../${repo}-admin internal/admin

internal/admin ブランチはウェブブラウザを使って https://cgit.freebsd.org/${repo}/log/?h=internal/admin で閲覧できます。

push の際には、以下のように完全な refspec を指定するか

git push freebsd HEAD:refs/internal/admin

または、push.defaultupstream に設定してください。 この設定を行うと、git push は、現在のブランチをデフォルトで upstream に push します。 このこれは、プロジェクトのワークフローにより適しています。

git config push.default upstream

この節で説明した内部の詳細は頻繁に変更されます。

A.3.9. 外部ミラー

FreeBSD.org は以下のミラーを管理しておらず、プロジェクトのメンバーが現在も維持しています。 ユーザおよび開発者は自由にこれらのミラーのリポジトリを pull したりブラウザで見ることができます。 これらのミラーとのプロジェクトワークフローは議論中です。

A.3.10. メーリングリスト

FreeBSD プロジェクトにおける git の一般的な使用方法や質問について: [freebsd-git](https://lists.freebsd.org/mailman/listinfo/freebsd-git)

コミットメッセージは以下のメーリングリストに送信されます。

詳細については、ハンドブックの C.2. 「メーリングリスト」 https://www.freebsd.org/doc/ja/books/handbook/eresources/#eresources-mail の "コミットメッセージリスト" の節を参照してください。

A.4. Subversion の利用

A.4.1. はじめに

2020 年 12 月より、FreeBSD のソースコード、ドキュメントのすべてを管理するメインのバージョン管理システムは git に移行しました。 git リポジトリの stable/11, stable/12 および関連するリリースのブランチは、subversion リポジトリにエクスポートされます。 このエクスポートは、各ブランチの保守終了予定日まで行われる予定です。 2012 年 7 月から 2021 年 3 月までの間 FreeBSD は、FreeBSD Ports Collection のすべてを管理するバージョン管理システムに Subversion を使用していました。 2021 年 4 月より、FreeBSD の Ports Collection のすべてを管理するメインのバージョン管理システムは git に移行しました。

-一般的には Subversion は開発者向けのツールです。 ユーザは好みに応じて、FreeBSD のベースシステムのアップデートに freebsd-update (「FreeBSD Update」)、Ports Collection のアップデートには portsnap (「Ports Collection の利用」) を使用できます。 2021 年 3 月以降、subversion はレガシーブランチ (stable/11 および stable/12) でのみ使用されます。

この節では、FreeBSD システムへの Subversion のインストール方法、および FreeBSD リポジトリをローカルに作成する方法について説明します。 さらに Subversion を利用するための情報についても紹介します。

A.4.2. ルート SSL 証明書

12.x より前の古い FreeBSD システムは、適切なルート証明書を持っていません。 これらのシステムに security/ca_root_nss をインストールすることで、 Subversion は HTTPS リポジトリサーバを検証できるようになります。 インストールの手順については、ルート SSL 証明書 で説明されています。

A.4.3. Svnlite

FreeBSD には、Subversion より軽い svnlite がインストールされています。 Subversion の port または package は、 Python もしくは Perl API が必要な時や、 最新の Subversion を使用したい時のみ必要となります。

通常の Subversion と、 svnlite との違いは、 使用する時のコマンド名が異なるだけです。

A.4.4. インストール

svnlite を利用できない場合や、 フルバージョンの Subversion を使いたいのであれば、 事前に Subversion をインストールしておく必要があります。

Subversion は Ports Collection からインストールできます。

# cd /usr/ports/devel/subversion
# make install clean

package を使って Subversion をインストールすることもできます。

# pkg install subversion

A.4.5. Subversion の実行

ローカルディレクトリにソースコードをダウンロードするには、 svn コマンドを使ってください。 このディレクトリにあるファイルを、 ローカル作業コピー と呼びます。

checkout をはじめて使う前に、 ローカルディレクトリを移動するか削除してください。 svn 以外の方法で用意されたディレクトリでチェックアウトすると、 すでに存在するファイルと、 リポジトリから持ってきたファイルとの間で衝突が起きてしまいます。

Subversion では、リポジトリの指定に protocol://hostname/path 形式の URL を用います。 以下に記載されているように、 アクセスする FreeBSD リポジトリは、パス (path) の最初で指定します。 リポジトリは 3 つあります。 base は FreeBSD ベースシステムのソースコード、ports は Ports Collection、 そして doc はドキュメントのリポジトリです。 たとえば、https://svn.FreeBSD.org/base/head/ という URL は、https プロトコルによる src リポジトリのメインブランチを示しています。

以下のように入力して、リポジトリからチェックアウトしてください。

# svn checkout https://svn.FreeBSD.org/repository/branch lwcdir

ここで、repository, branch および root は以下のとおりです。

  • repository には、 プロジェクトリポジトリの base, ports または doc のどれかひとつを指定します。

  • branch は、使うリポジトリによります。 ports および doc では、ほとんどの変更が head ブランチで行われます。 base リポジトリでは、head ブランチで -CURRENT の最新バージョンを管理しています。 -STABLE ブランチの最新バージョンは、 11.xstable/11, そして 12.xstable/12 で管理しています。

  • lwcdir は、 指定したブランチの中身が置かれるターゲットのディレクトリです。 通常 ports/usr/portsbase/usr/src、 そして doc では /usr/doc と指定します。

以下の例では、ソースツリーを FreeBSD リポジトリから HTTPS プロトコルを使ってチェックアウトします。 それらは、/usr/src のローカル作業コピーに置かれます。 もし /usr/src がすでに存在していて、それが svn によって生成されたものでなければ、チェックアウトする前に、名前を変更するか削除してください。

# svn checkout https://svn.FreeBSD.org/base/head /usr/src

初めてチェックアウトする際には、 リモートリポジトリのすべてのブランチをダウンロードする必要があるので、 時間がかかります。 我慢してください。

初めてのチェックアウト後は、 以下を実行することでローカル作業コピーをアップデートできます。

# svn update lwcdir

この例で作成された /usr/src をアップデートするには、 以下のようにしてください。

# svn update /usr/src

アップデートはチェックアウトにくらべ、 変更点のあるファイルのみが転送されるので高速です。

チェックアウト後、ローカル作業コピーをアップデートするもうひとつの方法は、 /usr/ports, /usr/src または /usr/doc ディレクトリの Makefile で提供されています。 SVN_UPDATE を設定して update ターゲットを使ってください。 たとえば、/usr/src をアップデートするには、以下のようにしてください。

# cd /usr/src
# make update SVN_UPDATE=yes

A.4.6. Subversion ミラーサイト

FreeBSD Subversion リポジトリは、

svn.FreeBSD.org

です。これは、公にアクセス可能なミラーネットワークで、 GeoDNS を用いて適切なバックエンドサーバを選択しています。 ブラウザを用いて FreeBSD の Subversion リポジトリを参照するには、https://svnweb.FreeBSD.org/ を利用してください。

HTTPS は推奨されているプロトコルです。 自動的に証明書を検証するために、security/ca_root_nss port をインストールする必要があります。

A.4.7. より詳しい情報

Subversion の利用に関する他の情報は、 Version Control with SubversionSubversion Documentation といった "Subversion Book" をご覧ください。

A.5. rsync を使用する

次のサイトは、FreeBSD を rsync プロトコルで提供しています。 rsync ユーティリティは送り側と受け側の差分だけを転送します。 FreeBSD FTP サーバのミラーサイトを作成する時に便利でしょう。 rsync は、多くのオペレーティングシステムで 利用することができます。FreeBSD 版は、net/rsync の port か、package を使ってください。

チェコ共和国

rsync://ftp.cz.FreeBSD.org/

提供しているコレクション:

  • ftp: FreeBSD FTP サーバの部分ミラー

  • FreeBSD: FreeBSD FTP サーバの全体ミラー

オランダ

rsync://ftp.nl.FreeBSD.org/

提供しているコレクション:

  • FreeBSD: FreeBSD FTP サーバの全体ミラー

ロシア

rsync://ftp.mtu.ru/

提供しているコレクション:

  • FreeBSD: FreeBSD FTP サーバの全体ミラー

  • FreeBSD-Archive: FreeBSD アーカイブ FTP サーバのミラー

スウェーデン

rsync://ftp4.se.freebsd.org/

提供しているコレクション:

  • FreeBSD: FreeBSD FTP サーバの全体ミラー

台湾

rsync://ftp.tw.FreeBSD.org/

rsync://ftp2.tw.FreeBSD.org/

rsync://ftp6.tw.FreeBSD.org/

提供しているコレクション:

  • FreeBSD: FreeBSD FTP サーバの全体ミラー

イギリス

rsync://rsync.mirrorservice.org/

提供しているコレクション:

  • ftp.freebsd.org: FreeBSD FTP サーバの全体ミラー

アメリカ合衆国

rsync://ftp-master.FreeBSD.org/

このサーバは、FreeBSD の一次ミラーサイトとしてのみ使われています。

提供しているコレクション:

  • FreeBSD: FreeBSD FTP サーバのマスタアーカイブ

  • acl: The FreeBSD マスタ ACL リスト

rsync://ftp13.FreeBSD.org/

提供しているコレクション:

  • FreeBSD: FreeBSD FTP サーバの全体ミラー


All FreeBSD documents are available for download at https://download.freebsd.org/ftp/doc/

Questions that are not answered by the documentation may be sent to <freebsd-questions@FreeBSD.org>.
Send questions about this document to <freebsd-doc@FreeBSD.org>.