Linux
RHEL 7 / Centos 7 將具有所有依賴項的軟體包從伺服器 A(已安裝的軟體包)複製到伺服器 B(離線)
我有兩台伺服器,然後這些伺服器需要安裝
postgresql10
,伺服器A可以安裝postgresql10
使用yum install
,但是伺服器B有一個不允許連接網際網路的規則。所以我嘗試在伺服器 Brpm
中安裝文件。
- 我使用我的開發伺服器下載
postgresql10
所有依賴項yumdownloader
- 我將所有
rpm
文件上傳到伺服器 Brpm -ivh *.rpm
我開始在伺服器 B中使用命令安裝- 經過我的嘗試,很多
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,}