Package-Management

pkg 如何選擇它的 repos (FreeBSD 10)

  • January 1, 2017

我正在使用 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"
   }

查看名為 in 的兩個目錄REPOS_DIR

  • /etc/pkg包含看起來像預設 FreeBSD.conf 的內容(啟用=是)。
  • /usr/local/etc/pkg/repos包含一個不同的 FreeBSD.conf (enabled=no) 和一個 pfsense.conf,其中包含pkg -vv.
  • 還有/usr/local/share/pfSense/pkg/repos一個包含與 pfsense.conf 相同的FreeBSD.conf和 pfsense.conf /usr/local/etc/pkg/repos(儘管後者在不同的文件名下:) pfSense-repo.conf,以及一個單獨文件中進一步開發 repos 的連結pfSense-repo-devel.conf

我正在嘗試找出 pkg 選擇其中哪些覆蓋哪些其他的邏輯,特別是因為當給予優先級時,在每種情況下它都是相同的(= 0)。

如果兩者都存在,文件是否會/usr/local/etc/pkg/*.conf自動覆蓋位於 的同名文件?/etc/pkg/*.conf如果沒有,發生了什麼以及 pkg 如何選擇要關注的儲存庫?

該行為實際上都記錄在手冊(qv)中。 REPOS_DIR取自,pkg.conf並按給定順序處理其目錄。每個目錄中的文件按字母順序處理。沒有比較文件名的概念。相反,稍後處理的文件會覆蓋之前與之衝突的任何內容。

進一步閱讀

  • pkg.conf. §5。 FreeBSD 手冊。2015 年。

引用自:https://unix.stackexchange.com/questions/334110