Назад | Перейти на главную страницу

Установка репозиториев Redhat в chroot jail без установленных репозиториев

Я установил программное обеспечение, которое работает в тюрьме chroot в Redhat 7.3. К сожалению, в этом джейле не установлены репозитории, поэтому я не могу скачать нужные мне пакеты через yum. Я хотел бы добавить репозитории Redhat в тюрьму, но не нашел способа сделать это. Простое копирование файлов репозитория с хоста не работает, потому что репозиторий требует ключей и сертификатов. Копирование ключей и сертификатов тоже не работает.

Как я могу установить репозитории Redhat на машину без установленных репозиториев? У меня есть yum и yum-config-manager.

Путь наименьшего сопротивления может заключаться в том, чтобы просто запустить ваше программное обеспечение в докере или LXC. Но самый простой способ, который я знаю, заставить это работать в chroot, - это настроить файловую систему со всем рабочим дистрибутивом Linux. Итак, вот как скопировать всю существующую ОС в каталог / chroot, а затем вы можете делать в chroot практически все, что вы можете делать с базовой системой.

У меня нет системы RHEL, поэтому эти инструкции были протестированы на CentOS 7.

запустите все это как root:

Перейти в корневой каталог

cd /

Создайте каталог chroot

mkdir chroot

Скопируйте большую часть операционной системы

cp {bin,etc,lib,lib64,sbin,usr} /chroot/ -a

Сделайте заполнители для остальных

mkdir /chroot/{root,dev,home,mnt,opt,proc,run,sys,tmp,var}

смонтировать специальные файловые системы к вашему chroot

mount -o bind /run /chroot/run/

mount -o bind /proc /chroot/proc/

mount -o bind /sys /chroot/sys/

mount -o bind /dev /chroot/dev/

Войдите в chroot

chroot chroot

Поскольку мы не копировали / var или / run, yum не сможет разрешить переменные $ releasever и $ basearch, поэтому мы жестко закодируем их в файле репо. Это путь к репозиторию CentOS, вы должны изменить его на то, что использует Red Hat. S вы можете заменить CentOS-Base.repo на RedHat-Base.repo или любой другой базовый репозиторий в каталоге /etc/yum.repos.d/. Также убедитесь, что архитектура совпадает, эта инструкция предназначена для 64-битной x86, что, скорее всего, вы используете, но если у вас есть сервер PowerPC или что-то действительно странное, измените соответствующим образом.

sed s/\$basearch/x86_64/g /etc/yum.repos.d/CentOS-Base.repo -i

sed s/\$releasever/7/g /etc/yum.repos.d/CentOS-Base.repo -i

Теперь вы можете вызвать yum и установить программное обеспечение

yum intall vim

Это установит vim в ваш chroot, но не в базовую систему. Для усиления защиты вы можете пройти и удалить кучу пакетов из chroot, так как на данный момент это в значительной степени полноценный сервер Red Hat, работающий в chroot.