Скачать ВСЕ rpms для продукта

8

У меня есть две машины 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». Это дало еще один набор ошибок.

Не уверен, какие варианты у меня есть на данный момент ...

Атул Ачарья
источник
Там нет "6.1" CentOS. это только CentOS 6, актуальный до того момента, когда RHEL 6.1 был сокращен, вероятно, с тех пор было много обновлений.
vonbrand

Ответы:

1

Если вам нужно сделать это много, вы можете потратить время на настройку Spacewalk . Он автоматизирует создание хранилища и заполнение его соответствующими пакетами (или, если хотите, всеми ними). Не говоря уже обо всем, что он делает ...

Майкл Хэмптон
источник
0
yum --downloadonly --downloaddir=~/downloadrepo -y install product

Вам нужно указать yum для загрузки из репозитория той же версии, что и для целевой машины (6.1)

Также необходимо убедиться, что на машине (6.3), которая будет выполнять загрузку, еще не установлены некоторые зависимости, отсутствующие на целевой машине (6.1)

rkosegi
источник
Это не обязательно сработает, так как получит пакеты, необходимые для установки в этой системе . Это может быть совершенно другой набор, чем тот, который требуется на (возможно, устаревшем) компьютере, не подключенном к сети.
vonbrand
0

Если вы не можете получить «чистую» машину, вам придется искать вручную недостающие части с помощью yum providesили

Вы должны пройти через ваш RPMs, которые уже вы репо и запросы их зависимость: rpm -qp --requires RPM. Если в этом списке появилось что-то новое, не являющееся частью вашего репо, вы должны добавить его.

Nils
источник