Как вы строите chroot-тюрьмы с помощью dnf?

Еще в тот же день, когда я использовал chroot jails, используя yum . Это было просто, легко и позволяло мне делать то, что в действительности не было доступно в то время (создавать пакеты для нескольких дистрибутивов на платформах, таких как ia64 и ppc, используя ту же инфраструктуру).

Ускорьтесь на 5 лет, я хотел бы построить простую тюрьму chroot на Fedora 23. Однако dnf не делает это легко. Раньше я мог просто создать файл /etc/yum.repo.d/ в jail dir и вызвать yum --installroot . К сожалению, dnf все еще читает местное репо, а не то, что создано в тюрьме chroot.

Возможно ли использовать dnf файлы conf, которые не являются /etc/dnf/dnf.conf или в /etc/yum.repos.d/ ?

3 Solutions collect form web for “Как вы строите chroot-тюрьмы с помощью dnf?”

Как вы узнали, с dnf вам нужно указать аргумент --releaserver .

Кроме того, если вы хотите использовать репозитории, специфичные для chroot, вам потребуется немного больше работы.

Я считаю, что самое простое решение – создать собственный файл dnf.conf внутри chroot, поместить внутри него конфигурацию репозитория, а затем использовать его.

Например, предположим, вы хотите создать chroot Fedora 24 в папке $(pwd)/mychroot , используя только пакеты из репозиториев fedora и rpmfusion.

Вы должны создать 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 и [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 и [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 

С 2016 года или около того Dnf изменила свои значения по умолчанию . Это означает, что при выполнении команды

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

По умолчанию Dnf теперь выглядит сначала в etc/dnf/dnf.conf и etc/yum.repo.d под /mnt/new-root .

Это значение по умолчанию можно изменить, указав:

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

dnf позволяет установить любую конфигурационную опцию в командной строке, и это включает reposdir . Должна быть доступна такая команда:

 ROOT=/path/to/my/chroot dnf --installroot="$ROOT" \ -c "$ROOT"/etc/dnf/dnf.conf \ --setopt=reposdir="$ROOT"/etc/yum.repos.d \ install ... 
  • RedHat Анаконда и группы
  • Как редактировать файл sudoers в Fedora?
  • Восстановить fedora 25 repolist
  • Почему я получаю оповещения о новых обновлениях, когда dnf говорит, что я в курсе последних событий?
  • Переустановка только пакетов с отсутствующими или поврежденными файлами в нерабочей системе?
  • Синхронизация двух установок Fedora
  • Как удалить перенос строк из команд DNF и YUM?
  • Что означают пакеты с темным цветом в выводе списка dnf?
  • Как установить / обновить только определенный пакет в Fedora из репо?
  • Как включить кеширование пакетов в dnf?
  • Ошибка после установки dnf на CentOS 7
  • dnf - как показать, какой зеркальный url был выбран?
  • Interesting Posts

    Монтирование NTFS-диска или папки в качестве доли Samba на Raspbian Jessie

    Почему chroot получает ENOENT в существующем файле?

    Команда scp, работающая в bash, не работает в zsh

    Выбор формата файла / home между NTFS и Ext4, Понимание торговых выходов в производительности и обмен данными с WinXP в режиме двойной загрузки

    Не удается получить доступ к localhost с помощью 127.0.0.1

    Установите USB (FAT) в Gentoo

    Linux: перехват установления соединения

    Отправка почты через внешний smtp-сервер с помощью командной строки / сценария оболочки

    Могу ли я сделать диск O / S READ ONLY и предотвратить запись метаданных?

    Как скомпилировать и использовать команду make для установки этой определенной программы / инструмента?

    Thunderbird: новое уведомление по электронной почте не работает должным образом

    Fedora 23: как сделать снимок экрана с окном контекстного меню, открытым на экране

    Объединить вывод нескольких независимых процессов в другом терминале

    Звук OMXplayer и HDMI на Малиновой Пи

    Как заставить Grub автоматически запускать cryptomount для загрузки его файла конфигурации (зашифрованной загрузки)

    Linux и Unix - лучшая ОС в мире.