dnf를 사용하여 chroot 감옥을 만드는 방법은 무엇입니까?

dnf를 사용하여 chroot 감옥을 만드는 방법은 무엇입니까?

저는 yum.

5년이 빨리 지나서 저는 Fedora 23에 간단한 chroot Jail을 만들고 싶습니다. 그러나 dnf쉽지 않습니다. 예전 에는 /etc/yum.repo.d/Jail 디렉토리에 파일을 생성 하고 yum --installroot.dnf

dnfOR이 아닌 /etc/dnf/dnf.confconf 파일을 사용할 수 있습니까 /etc/yum.repos.d/?

답변1

발견한 대로 dnf를 사용하면 매개변수를 지정해야 합니다 --releaserver.

또한 chroot 특정 저장소를 사용하려면 약간의 작업이 더 필요합니다.

dnf.conf내가 찾은 가장 쉬운 해결책은 chroot에 자신만의 파일을 만들고 그 안에 저장소 구성을 넣은 다음 사용하는 것입니다.

$(pwd)/mychroot예를 들어, fedora 및 rpmfusion-free 리포지토리의 패키지만 사용하여 폴더에 Fedora 24 chroot를 생성 한다고 가정합니다 .

mychroot/etc/dnf/dnf.conf다음 내용으로 파일을 생성합니다 .

[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

/etc/yum.repos.d/*.repo( 시스템에 있는 파일을 확인 하고 복사하여 붙여넣으세요.)

중요한 부분은 main해당 섹션에 있는 다음 줄입니다. 이 줄은 dnf가 어떤 디렉터리에서도 저장소를 검색하지 않고 기본 구성 파일에서만 검색하도록 지시하므로 시스템 저장소를 무시하게 됩니다.

reposdir=

마지막으로 dnf를 실행할 수 있습니다.

# dnf -c $(pwd)/mychroot/etc/dnf/dnf.conf install --installroot=$(pwd)/mychroot --releasever=24 gstreamer1-libav

답변2

2016~10년경부터 Dnf는기본값을 변경했습니다. 이는 다음과 같은 명령을 실행할 때를 의미합니다.

# dnf --installroot=/mnt/new-root --releasever=26 \
    group install custom-environment

지하 감옥이제 먼저 찾아보세요 etc/dnf/dnf.conf기본적으로 etc/yum.repo.d아래에 있습니다 /mnt/new-root.

이 기본값은 다음을 지정하여 변경할 수 있습니다.

 --setopt=reposdir=/other/path --config /other/location/dnf.conf

답변3

dnf를 사용하면 명령줄에서 모든 구성 옵션을 설정할 수 있습니다 reposdir. 다음과 같은 명령을 사용할 수 있습니다.

ROOT=/path/to/my/chroot
dnf --installroot="$ROOT" \
    -c "$ROOT"/etc/dnf/dnf.conf \
    --setopt=reposdir="$ROOT"/etc/yum.repos.d \
    install ...

관련 정보