下载产品的所有转速

Atu*_*rya 8 rpm centos package-management

我有两台 CentOS 机器,一台 6.3 机器(A),另一台 CentOS 6.1。()

6.3盒子有互联网连接,6.1盒子没有互联网连接。

我想在 Box A 上下载产品的所有依赖项,然后复制那些 n Box B,并安装该产品。

我试过

yum --downloadonly --downloaddir=*~/downloadrepo* -y install *product*`
cd *~/downloadrepo*
createrepo .
Run Code Online (Sandbox Code Playgroud)

然后我禁用了所有存储库(使用 --disablerepo),除了我的存储库,并在同一台机器上安装了产品(框 A)。没有错误。

  • yum install *product*

现在,当我将此 repo 复制到 Box B 并尝试使用相同的命令进行安装时,它开始安装,但随后出现了很多错误,如下所示:

错误:缺少依赖项:包 php-ldap-5.1.6-27.el5_5.3.x86_64(已安装)需要 libldap-2.3.so.0()(64bit)

有什么办法可以实现我的需要?

更新

当我开始使用 @rkosegi ( --releasever=version )建议的选项时,我得到了一个具有相同版本 CentOS 6.1 ( C )的新盒子

我在 Box C 上尝试了上述命令,并将 repo 复制到 Box B。仍然失败。原因:虽然两个盒子都是 6.1,但它们并不相同(uname -r返回不同的字符串)。

Yum 不会下载依赖项,如果这些依赖项已经安装。所以我的 repo 不包含一些依赖项(包括 OpenJDK)。因此,当我尝试在 Box B 上安装时,它失败了。

很郁闷!!!

但后来我在这里找到了命令“ repotrack ” 。

cd ~/downloadrepo
repotrack -p . -a x86_64 product
createrepo .
Run Code Online (Sandbox Code Playgroud)

我得到的文件比 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
Run Code Online (Sandbox Code Playgroud)

我尝试从文件夹中删除这两个文件,并使用“createrepo”重建存储库。它给出了另一组错误。

不知道我现在有什么选择...

rko*_*egi 0

yum --downloadonly --downloaddir=~/downloadrepo -y install product
Run Code Online (Sandbox Code Playgroud)

您需要指示 yum 从与目标机器相同版本的存储库下载(6.1)

还需要确保将执行下载的机器(6.3)尚未安装目标机器(6.1)上缺少的一些依赖项