
Auf einem FreeBSD 8.4-System lasse ich Jais mit EZjail laufen und verwende PKGNG (pkg), um meine Ports zu verwalten.
pkg funktioniert auf dem Host einwandfrei, weigert sich jedoch, Software in Jails zu aktualisieren.
pkg -j 5 version -v
gibt das gewünschte Ergebnis aus, z. B.
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)
Aber wenn ich es ausführe pkg -j 5 upgrade
oder pkg -j 5 upgrade [portname]
bekomme ich die folgende Meldung:
No active remote repositories configured.
Ich habe pkg auch in diesem Jail installiert und das Problem ist genau dasselbe (natürlich läuft es ohne den Parameter -j innerhalb des Jails).
Was könnte das Problem sein?
Antwort1
Das Problem bestand darin, dass das Repository-Verzeichnis im Jail leer war, im Gegensatz zum Verzeichnis /etc/pkg/ auf dem Host. In diesem Verzeichnis auf dem Host befindet sich eine Datei namens FreeBSD.conf, die das Repository definiert.
Diese Datei wurde automatisch auf dem Host erstellt, aber nicht im Jail. (obwohl pkg auch im Jail installiert wurde. Anscheinend sucht „pkg -j“ im Jail nach dieser Datei.
Ich habe diese Datei einfach in das Verzeichnis /etc/pkg/ im Jail kopiert und jetzt funktioniert es.
Zu Ihrer Information, der Inhalt dieser FreeBSD.conf-Datei:
# $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
}