
在 FreeBSD 8.4 系統上,我使用 EZjail 運行 jais,並使用 PKGNG (pkg) 來維護我的連接埠。
pkg 在主機上運作良好,但拒絕更新監獄中的軟體。
pkg -j 5 version -v
給出所需的輸出,例如
ImageMagick-6.7.3.4 < needs updating (index has 6.9.0.4,1)
ORBit2-2.14.19 < needs updating (index has 2.14.19_1)
但是當我運行pkg -j 5 upgrade
或pkg -j 5 upgrade [portname]
收到以下訊息時:
No active remote repositories configured.
我也在該監獄內安裝了 pkg,問題完全相同(當然在監獄內運作時不使用 -j 參數。
可能是什麼問題呢?
答案1
問題是,在監獄內,儲存庫目錄是空的,與主機上的 /etc/pkg/ 目錄不同。主機上的這個目錄中有一個名為 FreeBSD.conf 的文件,它定義了儲存庫。
這個檔案是在主機上自動產生的,而不是在監獄中產生的。 (儘管 pkg 也安裝在監獄內。顯然,「pkg -j」會在監獄內尋找此文件。
我剛剛將此文件複製到監獄中的 /etc/pkg/ 目錄中,現在它可以工作了。
僅供參考,此 FreeBSD.conf 檔案的內容:
# $FreeBSD$
#
# 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}/latest",
mirror_type: "srv",
signature_type: "fingerprints",
fingerprints: "/usr/share/keys/pkg",
enabled: yes
}