Установка пакетов 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 на полностью закрытой системе.