付録A FreeBSD の入手方法

A.1. Mirrors

FreeBSD の公式のミラーサイトは、プロジェクトクラスタの管理者により運用されている数多くのコンピュータから構成されています。 GeoDNS により、ユーザには近くの利用可能なミラーが提供されます。 現在ミラーサイトが置かれている地域は、オーストラリア、ブラジル、日本 (2 つのサイト)、マレーシア、オランダ、南アフリカ、台湾、英国、アメリカ合衆国 (カリフォルニア、ニュージャージーおよびワシントン) です。

公式のミラーサービス:

サービス名プロトコル備考

download.FreeBSD.org

https ftp

ftp.FreeBSD.org と同じ内容です。ftp は古い名前なので、download.FreeBSD.org が推奨されます。

git.FreeBSD.org

https および ssh 経由の git

詳細については、git の利用 の節を参照してください。

pkg.FreeBSD.org

http および https 経由の pkg(8)

pkg(8) プログラムにより利用される公式の FreeBSD package リポジトリ

すべての公式のミラーは、IPv4 および IPv6 に対応しています。

FreeBSD のウェブサイト (https://www.FreeBSD.org および https://docs.FreeBSD.org) は、GeoDNS インフラストラクチャでは運用されていません。 この実装は、進行中の課題です。

http://ftp-archive.FreeBSD.org は GeoDNS インフラストラクチャではなく、一つ地域 (US) でのみ運用されています。

プロジェクトでは、新しい地域やスポンサーを募集しています。 クラスター管理チームまで連絡してください。

コミュニティおよび他の会社により管理されているミラーの一覧:

ホスト名プロトコル

オーストラリア

ftp.au.FreeBSD.org

http http_v6 rsync rsync_v6

ftp3.au.FreeBSD.org

http ftp rsync

オーストリア

ftp.at.FreeBSD.org

http http_v6 ftp ftp_v6 rsync rsync_v6

ブラジル

ftp2.br.FreeBSD.org

http rsync rsync_v6

ftp3.br.FreeBSD.org

http ftp rsync

ブルガリア

ftp.bg.FreeBSD.org

ftp ftp_v6 rsync rsync_v6

チェコ共和国

ftp.cz.FreeBSD.org

http http_v6 rsync rsync_v6

デンマーク

ftp.dk.FreeBSD.org

http http_v6 ftp ftp_v6 rsync rsync_v6

フィンランド

ftp.fi.FreeBSD.org

ftp

フランス

ftp.fr.FreeBSD.org

http http_v6 ftp ftp_v6 rsync rsync_v6

ftp3.fr.FreeBSD.org

ftp

ftp6.fr.FreeBSD.org

http ftp rsync

ドイツ

ftp.de.FreeBSD.org

ftp ftp_v6 rsync rsync_v6

ftp1.de.FreeBSD.org

http http_v6 ftp ftp_v6 rsync rsync_v6

ftp2.de.FreeBSD.org

http http_v6 ftp ftp_v6 rsync rsync_v6

ftp5.de.FreeBSD.org

ftp ftp_v6

ftp7.de.FreeBSD.org

http http_v6 ftp ftp_v6

ギリシャ

ftp.gr.FreeBSD.org

http http_v6 ftp ftp_v6

ftp2.gr.FreeBSD.org

http http_v6 ftp ftp_v6 rsync

日本

ftp.jp.FreeBSD.org

http http_v6 ftp ftp_v6 rsync rsync_v6

ftp2.jp.FreeBSD.org

ftp rsync rsync_v6

ftp3.jp.FreeBSD.org

http rsync

ftp4.jp.FreeBSD.org

ftp

ftp6.jp.FreeBSD.org

http http_v6 ftp ftp_v6 rsync rsync_v6

韓国

ftp.kr.FreeBSD.org

http https ftp rsync

ftp2.kr.FreeBSD.org

rsync

ラトビア

ftp.lv.FreeBSD.org

http ftp

オランダ

ftp.nl.FreeBSD.org

http http_v6 ftp ftp_v6 rsync rsync_v6

ftp2.nl.FreeBSD.org

http ftp rsync

ニュージーランド

ftp.nz.FreeBSD.org

http ftp

ノルウェー

ftp.no.FreeBSD.org

ftp ftp_v6 rsync rsync_v6

ポーランド

ftp.pl.FreeBSD.org

http http_v6 ftp rsync rsync_v6

ロシア

ftp.ru.FreeBSD.org

http http_v6 ftp ftp_v6 rsync rsync_v6

ftp2.ru.FreeBSD.org

https ftp rsync

スロベニア

ftp.si.FreeBSD.org

http http_v6 ftp ftp_v6

南アフリカ

ftp.za.FreeBSD.org

https https_v6 rsync rsync_v6

ftp2.za.FreeBSD.org

http http_v6 ftp_v6

ftp4.za.FreeBSD.org

http ftp rsync

スウェーデン

ftp.se.FreeBSD.org

http http_v6 ftp ftp_v6 rsync rsync_v6

台湾

ftp4.tw.FreeBSD.org

https ftp rsync

ftp5.tw.FreeBSD.org

http ftp

ウクライナ

ftp.ua.FreeBSD.org

http ftp ftp_v6 rsync rsync_v6

英国

ftp.uk.FreeBSD.org

http http_v6 ftp ftp_v6 rsync rsync_v6

ftp2.uk.FreeBSD.org

http http_v6 https https_v6 ftp ftp_v6

アメリカ合衆国

ftp11.FreeBSD.org

http http_v6 ftp ftp_v6 rsync rsync_v6

ftp14.FreeBSD.org

ftp rsync (Former official tier 1)

ftp5.FreeBSD.org

http http_v6 ftp ftp_v6

コミュニティのミラーによりサポートされているプロトコル一覧は、2022-01-31 に更新されました。 この一覧は保証されているわけではありません。

A.2. Git の利用

A.2.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 ソースコードリポジトリのローカルコピーの作成方法について説明します。

A.2.2. インストール

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

# pkg install git

A.2.3. Git の実行

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

Git は、リポジトリの指定に URL を用います。 リポジトリには base, doc および ports の 3 種類あります。 base は FreeBSD ベースシステムのソースコード、doc はドキュメント、そして ports は FreeBSD Ports Collection のリポジトリです。 これら 3 つのリポジトリはすべて HTTPS および SSH という 2 つの異なるプロトコル経由でアクセスできます。 たとえば、https://git.FreeBSD.org/src.git という URL は、https プロトコルによる src リポジトリの main ブランチを示します。

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

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

https://git.FreeBSD.org/src.git

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

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

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

https://git.FreeBSD.org/doc.git

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

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

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

https://git.FreeBSD.org/ports.git

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

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

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

FreeBSD システムのソースコードリポジトリを clone するには、以下のコマンドを実行してください。

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

ここで -o freebsd オプションは origin を指定します。 FreeBSD のドキュメントの慣例で、origin は freebsd とします。 初めてチェックアウトする際には、リモートリポジトリのすべてのブランチをダウンロードするので時間がかかります。

ワーキングツリーには最初、CURRENT に対応する main ブランチのソースコードがダウンロードされます。 13-STABLE に変更するには以下のように実行してください。

# cd /usr/src
# git checkout stable/13

ワーキングツリーは、git pull によりアップデートできます。 上記の例で作成された /usr/src をアップデートするには、以下のようになります。

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

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

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

FreeBSD プロジェクトは、現在 cgit をウェブベースのリポジトリブラウザ (https://cgit.FreeBSD.org/) として使用しています。

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

リポジトリへの書き込みアクセスについてはの詳細は、Committer’s Guide をご覧ください。

A.2.6. 外部ミラー

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

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

FreeBSD プロジェクトにおける git の一般的な使用方法や質問についてのメインのメーリングリストは freebsd-git です。 コミットメッセージの一覧などの詳細については、メーリングリスト の章をご覧ください。

A.2.8. SSH ホスト鍵

  • 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. Subversion の利用

A.3.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.3.2. Svnlite

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

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

A.3.3. インストール

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

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

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

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

# pkg install subversion

A.3.4. 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.3.5. Subversion ミラーサイト

FreeBSD Subversion リポジトリは、

svn.FreeBSD.org

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

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

A.3.6. より詳しい情報

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

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

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


最終更新日: 2022年5月10日 by Ryusuke SUZUKI