Freebsdのpkgで複数のリポジトリを参照する方法

pkgを利用するときに、quarterlyリポジトリよりも新しいpkgが欲しい時があります。
その場合、まずlatestのリポジトリを探して、無かったらportsで自力インストールするような運用手順にして
できるだけpkgでシステムを構成できるようにすると、余計なビルド作業を極力減らせて便利なので
pkgが複数のリポジトリを参照できるように設定を行います。

使用環境とデフォルトのpkg設定
quarterlyが標準のリポジトリに設定されている。

$ freebsd-version 
10.2-RELEASE-p14

$ cat /etc/pkg/FreeBSD.conf 
# $FreeBSD: releng/10.2/etc/pkg/FreeBSD.conf 285830 2015-07-23 23:31:40Z gjb $
#
# To disable this repository, instead of modifying or removing this file,
# create a /usr/local/etc/pkg/repos/FreeBSD.conf file:
#
#   mkdir -p /usr/local/etc/pkg/repos
#   echo "FreeBSD: { enabled: no }" > /usr/local/etc/pkg/repos/FreeBSD.conf
#

FreeBSD: {
  url: "pkg+http://pkg.FreeBSD.org/${ABI}/quarterly",
  mirror_type: "srv",
  signature_type: "fingerprints",
  fingerprints: "/usr/share/keys/pkg",
  enabled: yes
}

ここに
# create a /usr/local/etc/pkg/repos/FreeBSD.conf file:
と書いてありますので、/usr/localの下にディレクトリを掘ります。

$ mkdir -p /usr/local/etc/pkg/repos
$ echo "FreeBSD: { enabled: no }" > /usr/local/etc/pkg/repos/FreeBSD.conf

標準の設定を無効化する設定ができました。
/usr/localの下にquarterlyを参照する設定、latestを参照する設定をそれぞれ追加します。
すると、/usr/local/etc/pkg/repos以下には下記の3つの設定ファイルが設置されます。

$ cat /usr/local/etc/pkg/repos/FreeBSD.conf 
FreeBSD: { enabled: no }
$ cat /usr/local/etc/pkg/repos/latest.conf 
latest: {
  url: "pkg+http://pkg.FreeBSD.org/${ABI}/latest",
  mirror_type: "srv",
  signature_type: "fingerprints",
  fingerprints: "/usr/share/keys/pkg",
  enabled: yes,
  priority: 10
}
$ cat /usr/local/etc/pkg/repos/quarterly.conf 
quarterly: {
  url: "pkg+http://pkg.FreeBSD.org/${ABI}/quarterly",
  mirror_type: "srv",
  signature_type: "fingerprints",
  fingerprints: "/usr/share/keys/pkg",
  enabled: yes,
  priority: 0
}

これでpkg updateすれば複数のリポジトリがアップデートするのが確認できると思います。
pkg install時は-rで明示的にリポジトリを指定しないと
リポジトリのpriorityと無関係に新しいバージョンが優先的にインストールされてしまうという微妙な仕様なので、この辺りは今後改善してほしいですね。