FreeBSD 10.0もBETA1がリリースされた。
ウホッとばかり突撃して、pkg_*の無いのに仰け反り、それなのにpkgではインストールのしようが無い現状に絶望した日本のFreeBSDユーザの方(絶対に少ねえ)に捧げます。

改めて背景を。
10.0からは、従来のパッケージ管理システムであるpkg_*に代わり、pkgngが登場する。
しかし。
2013/10/15現在、いまだ公式のpkgng向けPACKAGESITEが用意されていないのである。
なぜ、というのはここでも触れたとおり。
となれば、現時点ではportsからしか各種ソフトウェアをインストール出来ない。
うわ面倒くせえ。

PACKAGESITEは、さすがに10.0-RELEASEのときまでには準備がなされるはずであるが、現時点で外部のミラーサイトを参照せずにpkgngを使う方法を示す。

(追記:2013/11/7)
公式のpkgngが公開されている。詳しくは以下を。
../../../?p=2357
(追記ここまで)

その名もpkg-test.freebsd.org。しかし。

実は、ゆくゆくオフィシャルなPACKAGESITEになる予定のサーバはもうある。
それがpkg-test.freebsd.orgである。

じゃ、これをPACKAGESITEに指定すればいいじゃないか。
しかしですね、ブラウザでpkg-test.freebsd.orgに繋ごうとすると分かるが、No address recordとなるわけですよ。

というのも、pkg-test.freebsd.orgはDNS上、AレコードではなくSRVレコードだそうであり、かつRFCに沿ってないからだという、もうほんといい加減にせえよ…。
詳細は下記を。
Where is pkg repository for 9.2-RELEASE (amd64)?

よろしい。ではIPアドレス直打ちでどうだということで、まっさらのFreeBSD 10.0-BETA1でpkgngを使う方法を示す。

さいしょの一歩(pkgコマンドのインストール)

何はともあれ、まずはpkgコマンドそのものをインストールしなければならない。
pkgと叩けばいいのだが、さっそくこれですよ。

# pkg
The package management tool is not yet installed on your system.
Do you want to fetch and install it now? [y/N]: y
Bootstrapping pkg please wait
pkg: Error fetching http://pkg.FreeBSD.org/freebsd:10:x86:64/latest/Latest/pkg.txz: No address record
A pre-built version of pkg could not be found for your system.
Consider changing PACKAGESITE or installing it from ports: 'ports-mgmt/pkg'.

そこで、環境変数PACKAGESITEに以下のアドレスを与えてpkgコマンドを実行。
下記の例ではhttp://96.47.72.120/pkg-test-freebsd:10:x86:64/latestである。
96.47.72.120はpkg-test.freebsd.orgのIPアドレス
i386だったら、http://96.47.72.120/pkg-test-freebsd:10:x86:32/latestにしてね。

もちろん、pkg-test.freebsd.orgが参照しているpkg1.nyi.freebsd.orgでもOK。

# sh
# PACKAGESITE="http://96.47.72.120/pkg-test-freebsd:10:x86:64/latest" pkg
The package management tool is not yet installed on your system.
Do you want to fetch and install it now? [y/N]: y
Bootstrapping pkg please wait
Installing pkg-1.1.4_6... done
If you are upgrading from the old package format, first run:
(中略)
Commands provided by plugins:

For more information on the different commands see 'pkg help <command>'.
#

これでpkgコマンドがインストールされた。
つぎはpkgコマンドの設定。

pkgの設定

/usr/local/etc/pkg.confというファイルが出来ているはず。
ここのPACKAGESITEを確認。
ちなみに書式はYAML。
以下のようになっているはず。

packagesite: http://96.47.72.120/pkg-test-freebsd:10:x86:64/latest

今後のことを考えて、以下のように書き換えておきましょう。

PACKAGESITE     : http://96.47.72.120/pkg-test-${ABI}/latest

オフィシャルのPACKAGESITE(きっとpkg.freebsd.orgになるはず)が準備出来たら、ここはすぐに書き換えること。

なお、/etc/make.confへのWITH_PKGNG= yesは要りません。
必要なのはFreeBSD 10.0より前のバージョン。
FreeBSD HandBookより

To ensure that the FreeBSD Ports Collection registers new software with pkgng, and not the traditional packages format, FreeBSD versions earlier than 10.X require this line in /etc/make.conf

そうしたらpkg updateしておしまい。

pkg updateとpkgのインストール

# pkg update
Updating repository catalogue
digests.txz                         100%  955KB 238.7KB/s 214.8KB/s   00:04
packagesite.txz                     100% 5209KB 274.1KB/s 418.6KB/s   00:19
Incremental update completed, 0 packages processed:
0 packages updated, 0 removed and 21607 added.

2013/10/15の時点で約21000のパッケージがあるようですな。
念のためpkg upgrade。

# pkg upgrade
Updating repository catalogue
Nothing to do
#

まあ何もないよね。

試しにいくつかパッケージをインストールしてみましょう。

# pkg install bash tmux sudo portaudit
Updating repository catalogue
The following 6 packages will be installed:

        Installing gettext: 0.18.3
        Installing libevent: 1.4.14b_2
        Installing sudo: 1.8.7_1
        Installing portaudit: 0.6.1
        Installing bash: 4.2.45
        Installing tmux: 1.8_1

The installation will require 18 MB more space

4 MB to be downloaded

Proceed with installing packages [y/N]: y
gettext-0.18.3.txz                  100% 2086KB 231.8KB/s 285.9KB/s   00:09
libevent-1.4.14b_2.txz              100%  125KB 124.5KB/s 124.5KB/s   00:01
sudo-1.8.7_1.txz                    100%  652KB 217.4KB/s 392.2KB/s   00:03
portaudit-0.6.1.txz                 100%   10KB  10.1KB/s  10.1KB/s   00:00
bash-4.2.45.txz                     100%  890KB 222.6KB/s 360.2KB/s   00:04
tmux-1.8_1.txz                      100%  203KB 203.3KB/s 193.3KB/s   00:01
Checking integrity... done
[1/6] Installing gettext-0.18.3... done
[2/6] Installing libevent-1.4.14b_2... done
[3/6] Installing sudo-1.8.7_1... done
[4/6] Installing portaudit-0.6.1...
===>  To check your installed ports for known vulnerabilities now, do:

      /usr/local/sbin/portaudit -Fda

 done
[5/6] Installing bash-4.2.45... done
[6/6] Installing tmux-1.8_1... done

パッケージも新しく、pkg auditで確認しても脆弱性の報告はない。

# pkg audit -F
auditfile.tbz                       100%   90KB  90.0KB/s  90.0KB/s   00:01
0 problem(s) in your installed packages found.
#

というわけで、いろいろ問題はあるけれど、pkg-test.freebsd.orgは現時点で十分使えるということでございます。