私はFreeBSD 10のカスタムベースを使用するpfSenseを使用しています。pkg -vv
以下の関連定義が表示されます。
PKG_DBDIR = "/var/db/pkg";
PKG_CACHEDIR = "/var/cache/pkg";
PORTSDIR = "/usr/ports";
REPOS_DIR [
"/etc/pkg/",
"/usr/local/etc/pkg/repos/",
]
Repositories:
pfSense-core: {
url : "pkg+https://pkg.pfsense.org/pfSense_v2_3_2_amd64-core",
enabled : yes,
priority : 0,
mirror_type : "SRV"
}
pfSense: {
url : "pkg+https://pkg.pfsense.org/pfSense_v2_3_2_amd64-pfSense_v2_3_2",
enabled : yes,
priority : 0,
mirror_type : "SRV"
}
次の名前の2つのディレクトリを確認してくださいREPOS_DIR
。
/etc/pkg
デフォルトのFreeBSD.conf(Activation = Yes)に似た内容が含まれています。/usr/local/etc/pkg/repos
報告された2つのリポジトリ定義を含む他のFreeBSD.conf(Activation = no)とpfsense.confが含まれていますpkg -vv
。- pfsense.confと同じ内容を
/usr/local/share/pfSense/pkg/repos
含むファイルもあり(後者はファイル名が異なる)、別のファイルに追加の開発リポジトリへのリンクもあります。FreeBSD.conf
/usr/local/etc/pkg/repos
pfSense-repo.conf
pfSense-repo-devel.conf
私はpkgがこれらのどれを他のものよりも優先するかを選択するロジックを見つけようとしています。特に優先順位が与えられると、すべての場合に同じ(=0)であるからです。
両方のファイルが存在する場合、そのファイルは/usr/local/etc/pkg/*.conf
同じ名前のファイルを自動的に上書きしますか?/etc/pkg/*.conf
そうでない場合、何が起こっているのか、pkgは集中するリポジトリをどのように選択しますか?
答え1
動作は実際にはマニュアル(qv)にすべて文書化されています。それからディレクトリをREPOS_DIR
取得し、pkg.conf
与えられた順序で処理します。各ディレクトリのファイルはアルファベット順に処理されます。ファイル名を比較する概念はありません。代わりに、後で処理されたファイルは以前にクラッシュしたすべてのコンテンツを上書きします。
追加読書
pkg.conf
。 §5。 FreeBSDマニュアル。 2015