Создание chroot с Fedora

Иногда возникает необходимость по быстрому создать работоспособный chroot с Fedora, например, для того чтобы использовать его в какой-нибудь Ubuntu. Делается это всё очень просто.

Первым делом создаём каталог, в который будем ставить пакеты, например:

# mkdir -p /srv/fedora-21-chroot

После этого выполняем команду:

# yum --nogpg --releasever=21 --installroot=/srv/fedora-21-chroot --disablerepo='*' --enablerepo=fedora --enablerepo=updates  install systemd

После этого в /srv/fedora-21-chroot будет работоспособный chroot с Fedora 21. Что следует понимать. Для создания chroot используются уже подключённые в систему репозитории. В данном примере все репозитории, за исключением fedora и updates, отключаются. Если вам нужны все подключённые репозитории, то просто не указываете параметры --disablerepo и --enablerepo. Если вы хотите создать образ с RFRemix (на RFRemix), то просто не отключайте никакие репозитории, rfremix-release должен подтянуться сам:

# yum --nogpg --releasever=21 --installroot=/srv/fedora-21-chroot install systemd

Если вам нужна другая версия Fedora, то вместо 21 указываете нужную вам версию. Следует правда учесть, что начиная с 21-й версии RFRemix появился новый репозиторий russianfedora-branding, которого раньше не было, так что если вы создаёте в RFRemix 21 образ RFRemix 20, то этот репозиторий нужно отключить.

После того, как yum завершится и chroot будет создан не забудьте почистить кеш, это позволит сэкономить мегабайт 150:

# yum --nogpg --releasever=21 --installroot=/srv/fedora-21-chroot clean all

Вот и всё. Chroot готов к использованию. А ещё вы можете почитать, как сделать из него контейнер. Там нужно поставить немного больше, а потом запустить systemd-nspawn.

Читайте также:

комментария 2

  1. nucleo:

    Chromium 39.0.2171.95 Linux

    —disablerepo=’*’ — чтобы перестраховаться на случай, если systemd с зависимостями окажутся в дополнительных репозиториях?
    Если подключены russianfedora и rpmfusion, то systemd и зависимости установятся только из fedora и updates.

  2. nucleo:

    Chromium 39.0.2171.95 Linux

    Теперь понял в чём дело, у меня не подключён brandinf.