У меня есть один сервер с сетевым подключением, где я могу использовать «yum install $ PACKAGE».
Мне нужна какая-то команда yum, например, yum cache-rpms $PACKAGE $DIRECTORY
такая, что все необходимые RPM-файлы будут загружены в $ DIRECTORY, в которой также будет указан файл ( Install.sh
) с указанием порядка установки этих RPM- файлов на многих других серверах без сетевого подключения.
Install.sh
может даже быть сценарий оболочки, который имеет такое же поведение yum install $PACKAGE
, за исключением того, что он не будет использовать сеть, но будет использовать только $DIRECTORY
.
Возможный?
Я ищу общее решение, в котором доступны yum и RPM, но для определенности: оно находится на наборе серверов CENTOS 6.7.
Ответы:
Вот конкретный пример использования httpd в качестве пакета для загрузки и установки. Этот процесс был протестирован как на CentOS6, так и на CentOS7.
Установите необходимый материал и создайте место для загрузки загруженных RPM:
Загрузите RPM. При этом используется предложенный здесь трюк installroot для принудительной полной загрузки всех зависимостей, поскольку в этом пустом корне ничего не установлено. Yum создаст там некоторые метаданные, но мы все выбросим. Обратите внимание, что для CentOS7
releasever
будет "7".Да, это была маленькая версия. Вы бы видели размер загрузок с полным репо!
Сгенерируйте метаданные, необходимые для превращения нашей новой стопки RPM в репозиторий YUM, и очистите то, что нам больше не нужно:
Настройте каталог загрузки как репо. Обратите внимание, что для CentOS7 gpgkey будет называться «7» вместо «6»:
Чтобы проверить отсутствующие зависимости:
Я не выяснил, почему в CentOS7 сообщается о таких вещах, как
libssl.so.10(libssl.so.10)(64bit)
отсутствие,httpd-tools
когдаopenssl-libs-1.0.1e-51.el7_2.2.x86_64.rpm
(поставщик этой библиотеки) явно присутствует в каталоге. Тем не менее, если вы видите, что чего-то явно не хватает, это может быть хорошим шансом вернуться и добавить это, используя тот жеyum install --downloadonly
метод, описанный выше.В автономном режиме или после копирования
/var/tmp/httpd
каталога репо на другой сервер настройте репо:Надеюсь, нет отсутствующих зависимостей!
источник
Кажется, вы спрашиваете,
yumdownloader
что содержится в пакетеyum-utils
. По этому поводу уже есть несколько вопросов и ответов, см., Например, Загрузка всех зависимостей с помощью yumdownloader, даже если они уже установлены? или Как найти URL пакетов с помощью Yum?yumdownloader
будет загружать пакеты, хотя он не будет генерировать файл, такInstall.sh
как порядок может быть определен самим yum, поэтому вы можете установить пакеты на целевую коробку черезyum install ./*rpm
папку с загруженными пакетами (которая должна включать все зависимости по сравнению с базовая установка - см. первую ссылку вышеrepotrack
)источник
Я нуждался в этом несколько раз, поэтому я автоматизировал ответ @Steve Bonds. Просто убедитесь, что вы определили
PKG
пакет для установки на обоих компьютерах (Отказ от ответственности: для CentOS 7. Для CentOS 6 измените--releasever
иCentOS-7
spot.онлайн машина
на автономной машине:
источник
-y
в последнюю команду, чтобы подтвердить установку пакетов при запуске в фоновом режиме.