我使用的是 pfSense,它使用 FreeBSD 10 的定制基础。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"
}
查看中命名的两个目录REPOS_DIR
:
/etc/pkg
包含看起来像默认 FreeBSD.conf 的内容(enabled=yes)。/usr/local/etc/pkg/repos
包含不同的 FreeBSD.conf (enabled=no) 以及 pfsense.conf,其中包含 报告的两个存储库定义pkg -vv
。- 还有
/usr/local/share/pfSense/pkg/repos
一个包含FreeBSD.conf
与 pfsense.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年。