Я установил программное обеспечение, которое работает в тюрьме 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.