RHEL 7 / Centos 7 将包含所有依赖项的包从服务器 A(已安装的包)复制到服务器 B(离线)

RHEL 7 / Centos 7 将包含所有依赖项的包从服务器 A(已安装的包)复制到服务器 B(离线)

我有两台服务器,然后这些服务器需要安装postgresql10服务器A可以使用安装postgresql10yum install但是服务器B有一条规则不允许连接互联网。所以我尝试使用rpm文件安装服务器B

  1. postgresql10全部下载依赖项yumdownloader从我的开发服务器使用
  2. 我将所有rpm文件上传到服务器B
  3. rpm -ivh *.rpm我开始使用里面的命令进行安装服务器B
  4. 我尝试后,很多都depedenciess没有下载yumdownloader

我的想法是创建一个包含包和所有依赖项的文件,就像tar.gz文件一样,然后我将其安装到其他服务器,就像提取文件一样简单但我仍在研究,并且仍然坚持下去。

所以如果你有和我一样的故事,你有什么最好的方法吗?有什么script方法可以帮助我解决问题吗? 请与我分享,非常感谢

答案1

有一种方法,但它非常棘手,可能会弄乱你的服务器,所以非常小心

命名法:

  • 在线的:连接到存储库的系统
  • 离线:您的系统未连接

脚步:

从以下位置压缩 rpm 数据库离线系统并将其传输到在线的系统:

cd /var/lib/rpm/
tar -cvzf /tmp/rpmdb.tgz *
scp /tmp/rpmdb.tgz root@online:/tmp

在你的在线的系统;用来自以下系统的 rpm db 替换你的 rpm db离线系统:

cp -r /var/lib/rpm{,.bak} # back up your rpmdb from your online system. Make sure not to lose this!!
rm -rf /var/lib/rpm/*
cd /var/lib/rpm
tar -xvf /tmp/rpmdb.tgz # now your online system pretends to have the rpm database from the offline system. Don't start really installing / uninstalling rpms or you'll break everything

现在使用仅下载模拟您的更新:

yum install --downloadonly # or
zypper up --download-only

现在你可以获取所有下载的软件包,它们足以更新你的离线系统

现在恢复你的在线的机器:

rm -rf /var/lib/rpm
cp -r /var/lib/rpm{.bak,}

相关内容