У меня есть две машины CentOS, одна коробка 6.3 ( A ) и другая CentOS 6.1. ( Б )
6,3 коробка с подключением к интернету, 6,1 коробка без подключения к интернету.
Я хочу загрузить ВСЕ зависимости продукта в Box A, затем скопировать их в Box B и установить продукт.
Я пробовал с
yum --downloadonly --downloaddir=*~/downloadrepo* -y install *product*`
cd *~/downloadrepo*
createrepo .
Затем я отключил все репозитории (с --disablerepo), кроме репо, и установил продукт на тот же компьютер (Box A). Нет ошибок
yum install *product*
Теперь, когда я скопировал этот репозиторий в Box B и попытался установить с помощью той же команды, он начинает установку, но затем выдает много ошибок, как показано ниже:
Ошибка: отсутствует зависимость: libldap-2.3.so.0 () (64 бита) требуется для пакета php-ldap-5.1.6-27.el5_5.3.x86_64 (установлен)
Как там я могу добиться того, что мне нужно?
ОБНОВИТЬ
К тому времени, когда я начал работать с опцией, предложенной @rkosegi ( --releasever = version ), мне дали новую коробку с той же версией CentOS 6.1 ( C )
Я попробовал вышеупомянутые команды на Box C, и скопировал репо на Box B. Тем не менее, это не удалось. Причина: хотя оба поля 6.1, они не идентичны ( uname -r возвращает разные строки).
Yum не загружает зависимости, если они уже установлены. Поэтому в моем репо не было некоторых зависимостей (включая OpenJDK). Итак, когда я пытаюсь установить на Box B, это не удается.
Довольно расстраивает !!!
Но потом я нашел команду « repotrack » здесь .
cd ~/downloadrepo
repotrack -p . -a x86_64 product
createrepo .
Я получил гораздо больше файлов, чем с yum, надеюсь, это сработает.
Я обновлю, как только попробую установить.
ОБНОВИТЬ
Команда repotrack у меня не сработала. При попытке установить из репозитория, созданного с помощью 'repotrack', появились следующие ошибки:
Error: Package: perl-CGI-3.51-127.el6.x86_64 (repo-local)
Requires: perl = 4:5.10.1-127.el6
Installed: 4:perl-5.10.1-119.el6_1.1.x86_64 (@anaconda-CentOS-201112102333.x86_64/6.2)
perl = 4:5.10.1-119.el6_1.1
Error: Package: audit-libs-python-2.2-2.el6.x86_64 (repo-local)
Requires: audit-libs = 2.2-2.el6
Installed: audit-libs-2.1.3-3.el6.x86_64 (@anaconda-CentOS-201112102333.x86_64/6.2)
audit-libs = 2.1.3-3.el6
Я попытался удалить эти два файла из папки и пересоздать репозиторий с помощью команды «createrepo». Это дало еще один набор ошибок.
Не уверен, какие варианты у меня есть на данный момент ...
источник
Ответы:
Если вам нужно сделать это много, вы можете потратить время на настройку Spacewalk . Он автоматизирует создание хранилища и заполнение его соответствующими пакетами (или, если хотите, всеми ними). Не говоря уже обо всем, что он делает ...
источник
Вам нужно указать yum для загрузки из репозитория той же версии, что и для целевой машины (6.1)
Также необходимо убедиться, что на машине (6.3), которая будет выполнять загрузку, еще не установлены некоторые зависимости, отсутствующие на целевой машине (6.1)
источник
Если вы не можете получить «чистую» машину, вам придется искать вручную недостающие части с помощью
yum provides
илиВы должны пройти через ваш RPMs, которые уже вы репо и запросы их зависимость:
rpm -qp --requires RPM
. Если в этом списке появилось что-то новое, не являющееся частью вашего репо, вы должны добавить его.источник