Linux

RHEL 7 / Centos 7 將具有所有依賴項的軟體包從伺服器 A(已安裝的軟體包)複製到伺服器 B(離線)

  • July 12, 2019

我有兩台伺服器,然後這些伺服器需要安裝postgresql10伺服器A可以安裝postgresql10使用yum install,但是伺服器B有一個不允許連接網際網路的規則。所以我嘗試在伺服器 Brpm中安裝文件。

  1. 我使用我的開發伺服器下載postgresql10所有依賴項yumdownloader
  2. 我將所有rpm文件上傳到伺服器 B
  3. rpm -ivh *.rpm我開始在伺服器 B中使用命令安裝
  4. 經過我的嘗試,很多depedenciess都沒有被下載yumdownloader

我的想法是**製作一個文件,其中包含單個文件中的包和所有依賴項,例如tar.gz文件,然後我安裝到其他伺服器,就像提取文件一樣簡單,**但我仍在研究,然後仍然堅持下去。

所以如果你有和我一樣的故事,你有什麼最好的方法?有什麼script可以幫助我解決問題的。 請分享給我,非常感謝

有一種方法,但它非常棘手,可能會弄亂你的伺服器,所以要非常小心

命名法:

  • online:連接到儲存庫的系統
  • 離線:您的系統未連接

腳步:

離線系統壓縮您的 rpm 數據庫並將其傳輸到線上系統:

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

在您的線上系統上;用離線系統中的 rpm 數據庫替換您的 rpm 數據庫:

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,}

引用自:https://serverfault.com/questions/974973