Wie Sie herausgefunden haben, müssen Sie mit dnf das --releaserver
Argument angeben .
Wenn Sie außerdem Repositorys verwenden möchten, die für die Chroot spezifisch sind, benötigen Sie etwas mehr Arbeit.
Ich finde, die einfachste Lösung besteht darin, eine eigene dnf.conf
Datei in der Chroot zu erstellen , die Repository-Konfigurationen darin abzulegen und sie dann zu verwenden.
$(pwd)/mychroot
Angenommen , Sie möchten eine Fedora 24-Chroot im Ordner erstellen , indem Sie nur Pakete aus den Fedora- und rpmfusion-freien Repositorys verwenden.
Sie würden die mychroot/etc/dnf/dnf.conf
Datei mit folgendem Inhalt erstellen :
[main]
gpgcheck=1
installonly_limit=3
clean_requirements_on_remove=True
reposdir=
[fedora]
name=Fedora $releasever - $basearch
failovermethod=priority
metalink=https://mirrors.fedoraproject.org/metalink?repo=fedora-$releasever&arch=$basearch
enabled=1
metadata_expire=7d
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
skip_if_unavailable=False
[updates]
name=Fedora $releasever - $basearch - Updates
failovermethod=priority
metalink=https://mirrors.fedoraproject.org/metalink?repo=updates-released-f$releasever&arch=$basearch
enabled=1
gpgcheck=1
metadata_expire=6h
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-$releasever-$basearch
skip_if_unavailable=False
[rpmfusion-free]
name=RPM Fusion for Fedora $releasever - Free
metalink=https://mirrors.rpmfusion.org/metalink?repo=free-fedora-$releasever&arch=$basearch
enabled=1
metadata_expire=14d
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmfusion-free-fedora-$releasever
(Sehen Sie sich die /etc/yum.repos.d/*.repo
Dateien auf Ihrem System an und kopieren Sie sie einfach.)
Der wichtige Teil ist diese Zeile in dem main
Abschnitt, in dem dnf angewiesen wird, nicht in einem Verzeichnis nach Repositorys zu suchen, sondern nur in der Hauptkonfigurationsdatei, wodurch Ihre System-Repositorys ignoriert werden:
reposdir=
Schließlich können Sie dnf ausführen:
# dnf -c $(pwd)/mychroot/etc/dnf/dnf.conf install --installroot=$(pwd)/mychroot --releasever=24 gstreamer1-libav
--releasever=23
die Installation mit meinen lokalen Repos funktioniert hat, aber ich kann trotzdem nicht auf ein anderes Repo verweisen, das nicht Teil meiner Installation ist. Dies bringt mir das, was ich gerade will, löst aber nicht das Grundproblem