Установка пакетов yum в систему CentOS 6 с автономным доступом

У меня есть система CentOS 6, которая из соображений безопасности закрыта. Возможно, он никогда не был подключен к Интернету, и если он был, он не обновлялся в течение длительного времени.

Я хочу поместить все пакеты.rpm на диск, чтобы их можно было устанавливать в автономном режиме, не обращаясь к Интернету. Однако проблема, с которой я сталкиваюсь на моей тестовой виртуальной машине, заключается в том, что yum продолжает зависать и пытается обновиться из онлайн-хранилища, даже если указан локальный путь.

Кроме того, есть ли способ легко получить пакет и все зависимости для этого пакета, используя yum-utils/yumdownloader? На данный момент он по-прежнему пропускает некоторые зависимости (например, когда я беру gcc-C++ rpm, он захватывает cpp а также gcc но это не потянет cloog-ppl, mpfr или же ppl)

Я уже пробовал подобное решение, но не могу предположить, что уже будет дерево зависимостей или что yum будет в курсе.

При новой установке образа докера при первой попытке запустить yum (с отключенным интернетом) я получаюError: Cannot retrieve repository metadata (repomd.xml) for repository: base. Please verify its path and try again

2 ответа

Решение

Если вас беспокоит совместимость между установленным выпуском и последней стабильной версией, вы можете определить свою версию centos в /etc/redhat-release и использовать пакеты с http://vault.centos.org/, однако имейте в виду, что они не будут содержать никаких обновлений безопасности или исправлений ошибок.

Для загрузки пакетов - используйте официальные инструкции Redhat: https://access.redhat.com/solutions/10154

yum install yum-plugin-downloadonly
yum install --downloadonly --downloaddir=<directory> <package>

или же

yum install yum-utils
yumdownloader --resolve

Вы также можете посмотреть на репликацию истории yum на vm, куда вы хотите загрузить rpms, используя приемы из этого ответа: /questions/594354/phpmyadmin-pokazyivaet-bazu-dannyih-myisam-no-tablitsyi-innodb/594361#594361

Самый простой способ, и он работал долго:

yum-debug-dump => gives file.
yum-debug-restore <file-from-debug-dump>

... которая работает так же, как команда get / set selections dpkg, AIUI. Также обратите внимание, что если вы воспроизводите историю, вы можете использовать:

yum history addon-info last saved_tx => gives file
yum load-tx <file-from-addon-info>

... вместо того, чтобы разбирать его самостоятельно.

Редактировать:

Чтобы установить все rpms из каталога, cd к нему и просто использоватьrpm -ivh *.rpm если вы хотите установить их, или rpm -Uvh *.rpm если некоторые загруженные файлы более новые, чем уже существующие, и вы можете обновить их.

Редактировать : нет, все не так просто. Все еще получаю эту ошибку в новом стеке: Error: Cannot retrieve repository metadata (repomd.xml) for repository: base. Please verify its path and try again

Если я позволю yum получить доступ к Интернету достаточно долго, чтобы настроить себя, будет работать следующее:

Сначала я смог вытащить все пакеты зависимостей с помощью вызовов

yum install -y --downloadonly --downloaddir=$pkgdir <package>

а также

yum reinstall -y --downloadonly --downloaddir=$pkgdir <package>

заставить любые уже установленные пакеты вытащить их .rpm и зависимости. Затем, как только я приобрел свой пакет пакетов, я установил его на новую систему.

Сначала я побежал sed -i 's/enabled=1/enabled=0/' '/etc/yum/pluginconf.d/fastestmirror.conf' отключить плагин fastmirror.

Затем я смог установить все нужные мне пакеты, перейдя в каталог с пакетами, затем осторожно вызвав

yum install --disablerepo=\* packag*

в порядке, требуемом зависимостями. Так что это выглядело как

yum install --disablerepo=\* epel*
yum install --disablerepo=\* ius*
yum install --disablerepo=\* libstd*
yum install --disablerepo=\* mpfr*
yum install --disablerepo=\* cpp*
yum install --disablerepo=\* libgcc*
yum install --disablerepo=\* libgomp*
yum install --disablerepo=\* libg*
yum install --disablerepo=\* ppl*
yum install --disablerepo=\* cloog*
yum install --disablerepo=\* gcc*
yum install --disablerepo=\* atlas*
yum install --disablerepo=\* python*

И вуаля! Я был в состоянии запустить python3.5 на полностью закрытой системе.

Другие вопросы по тегам