下载产品的所有rpm


8

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

6.3盒可连接互联网,6.1盒可不连接互联网。

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

我尝试过

yum --downloadonly --downloaddir=*~/downloadrepo* -y install *product*`
cd *~/downloadrepo*
createrepo .

然后,我禁用了所有回购(使用--disablerepo),但我的回购除外,并将产品安装在同一台计算机上(框A)。没有错误。

  • yum install *product*

现在,当我将此仓库复制到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上尝试了上面提到的命令,并将其回购复制到BoxB。仍然失败。原因:尽管两个方框均为6.1,但两者并不相同(uname -r返回不同的字符串)。

如果已安装依赖项,则Yum不会下载依赖项。因此,我的存储库不包含某些依赖项(包括OpenJDK)。因此,当我尝试在Box B上安装时,它将失败。

相当令人沮丧!!!

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

cd ~/downloadrepo
repotrack -p . -a x86_64 product
createrepo .

与yum相比,我得到的文件更多,希望可以解决问题。

尝试安装后,我将进行更新。

更新

Command 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。截止到RHEL 6.1被剪切时,它只是最新的CentOS 6,此后可能进行了大量更新。
vonbrand

Answers:


1

如果您需要做很多事情,则可能需要花一些时间来设置Spacewalk。它将自动创建存储库并使用适当的程序包(或所有必要的程序包)填充它。更不用说它所做的一切...


0
yum --downloadonly --downloaddir=~/downloadrepo -y install product

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

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


那将不一定有效,因为它将获得在该系统上安装所需的软件包。这可能与一台(可能已过时)未联网的计算机所需的设置有很大不同。
vonbrand 2013年

0

如果您无法获得“干净的”机器,则必须使用yum provides或手动搜索缺少的零件。

您必须浏览回购中已经存在的rpm并查询其依赖项: rpm -qp --requires RPM。如果该列表出现了一些新的东西,而您的回购中还没有包含新的东西,则必须添加它。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.