Freebsd
FreeBSD pkg 升級不適用於帶有 -j 參數的監獄
在 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 參數。
可能是什麼問題呢?
問題是在監獄裡的儲存庫目錄是空的,不像主機上的 /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 }