yum 下載全量依賴 rpm 包及離線安裝(終極解決方案)
阿新 • • 發佈:2021-08-20
一、簡介
通常生產環境由於安全原因都無法訪問網際網路。此時就需要進行離線安裝,主要有兩種方式:原始碼編譯、rpm包安裝。原始碼編譯耗費時間長且缺乏編譯環境,所以一般都選擇使用離線 rpm 包安裝。
二、驗證環境
Centos 7.2
三、檢視依賴包
可以使用“yum deplist”命令來查詢 rpm 包的依賴列表。例如,要查詢“ansible”rpm的依賴包:
$ yum deplist ansible 軟體包:ansible.noarch 2.9.3-1.el7 依賴:/usr/bin/env provider: coreutils.x86_64 8.22-24.el7 依賴:/usr/bin/python2 provider: python.x86_64 2.7.5-86.el7 依賴:PyYAML provider: PyYAML.x86_64 3.10-11.el7 依賴:python(abi) = 2.7 provider: python.x86_64 2.7.5-86.el7 依賴:python-httplib2 provider: python-httplib2.noarch 0.9.2-1.el7 依賴:python-jinja2 provider: python-jinja2.noarch 2.7.2-4.el7 依賴:python-paramiko provider: python-paramiko.noarch 2.1.1-9.el7 依賴:python-setuptools provider: python-setuptools.noarch 0.9.8-7.el7 依賴:python-six provider: python-six.noarch 1.9.0-2.el7 依賴:python2-cryptography provider: python2-cryptography.x86_64 1.7.2-2.el7 依賴:python2-jmespath provider: python2-jmespath.noarch 0.9.0-3.el7 依賴:sshpass provider: sshpass.x86_64 1.06-2.el7
方案一(推薦):repotrack
# 安裝yum-utils
$ yum -y install yum-utils
# 下載 ansible 全量依賴包
$ repotrack ansible
方案二:yumdownloader
# 安裝yum-utils
$ yum -y install yum-utils
# 下載 ansible 依賴包
$ yumdownloader --resolve --destdir=/tmp ansible
引數說明:
--destdir:指定 rpm 包下載目錄(不指定時,預設為當前目錄)
--resolve:下載依賴的 rpm 包。
注意
僅會將主軟體包和基於你現在的作業系統所缺少的依賴關係包一併下載。
方案三:yum 的 downloadonly 外掛
# 安裝外掛
$ yum -y install yum-download
# 下載 ansible 依賴包
$ yum -y install ansible --downloadonly --downloaddir=/tmp
注意
與 yumdownloader 命令一樣,也是僅會將主軟體包和基於你現在的作業系統所缺少的依賴關係包一併下載。
離線安裝 rpm
# 離線安裝
$ rpm -Uvh --force --nodeps *.rpm
參考資料
https://serverfault.com/questions/470964/yumdownloader-vs-repotrack