Như bạn đã tìm ra, với dnf, bạn cần chỉ định --releaserver
đối số.
Ngoài ra, nếu bạn muốn sử dụng các kho lưu trữ cụ thể cho chroot, thì bạn sẽ cần thêm một chút công việc.
Tôi thấy giải pháp đơn giản nhất là tạo dnf.conf
tập tin của riêng bạn bên trong chroot, đặt cấu hình kho lưu trữ bên trong và sau đó sử dụng nó.
Ví dụ: giả sử bạn muốn tạo một chroot Fedora 24 trong $(pwd)/mychroot
thư mục, chỉ sử dụng các gói từ kho lưu trữ không có fedora và rpmfusion.
Bạn sẽ tạo mychroot/etc/dnf/dnf.conf
tập tin với nội dung sau:
[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
(nhìn vào các /etc/yum.repos.d/*.repo
tập tin trên hệ thống của bạn và chỉ cần sao chép-dán)
Phần quan trọng là dòng này trong main
phần này, cho biết dnf không tìm kiếm các kho lưu trữ trong bất kỳ thư mục nào, mà chỉ trong tệp cấu hình chính, sẽ làm cho nó bỏ qua kho lưu trữ hệ thống của bạn:
reposdir=
Cuối cùng, bạn có thể chạy dnf:
# dnf -c $(pwd)/mychroot/etc/dnf/dnf.conf install --installroot=$(pwd)/mychroot --releasever=24 gstreamer1-libav
--releasever=23
cài đặt đã làm việc với các repos cục bộ của tôi, nhưng nó vẫn không cho phép tôi tham khảo một repo khác không phải là một phần của cài đặt của tôi. Điều này mang lại cho tôi những gì tôi muốn ngay bây giờ, nhưng không giải quyết được vấn đề gốc