1. 程式人生 > 其它 >yum 下載全量依賴 rpm 包及離線安裝(終極解決方案)

yum 下載全量依賴 rpm 包及離線安裝(終極解決方案)

一、簡介

通常生產環境由於安全原因都無法訪問網際網路。此時就需要進行離線安裝,主要有兩種方式:原始碼編譯、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

轉載自:https://www.cnblogs.com/daodaotest/p/12452290.html