FreeBSD pkg 升级不适用于带有 -j 参数的 jail

FreeBSD pkg 升级不适用于带有 -j 参数的 jail

在 FreeBSD 8.4 系统上,我运行 jais 和 EZjail,并使用 PKGNG (pkg) 来维护我的端口。

pkg 在主机上运行良好,但拒绝在 jail 中更新软件。

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 upgradepkg -j 5 upgrade [portname]收到以下消息时:

No active remote repositories configured.

我也在该监狱内安装了 pkg,问题完全相同(当然,在监狱内运行时没有 -j 参数。

可能是什么问题呢?

答案1

问题在于,监狱内的存储库目录是空的,与主机上的 /etc/pkg/ 目录不同。主机上的此目录中有一个名为 FreeBSD.conf 的文件,它定义了存储库。

该文件是在主机上自动生成的,但不是在 jail 中。(尽管 pkg 也安装在 jail 内。显然 'pkg -j' 在 jail 内寻找这个文件。)

我刚刚将此文件复制到监狱中的 /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
}

相关内容