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

簡介

通常生產環境由於安全原因都無法訪問互聯網。此時就需要進行離線安裝,主要有兩種方式:源碼編譯、rpm包安裝。源碼編譯耗費時間長且缺乏編譯環境,所以一般都選擇使用離線 rpm 包安裝。

驗證環境

Centos 7.2

查看依賴包

可以使用“yum deplist”命令來查找 rpm 包的依賴列表。例如,要查找“ansible”rpm的依賴包:

<code>$ 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
/<code>

方案一(推薦):repotrack

<code># 安裝yum-utils
$ yum -y install yum-utils


# 下載 ansible 全量依賴包
$ repotrack ansible/<code>

方案二:yumdownloader

<code># 安裝yum-utils
$ yum -y install yum-utils

# 下載 ansible 依賴包
$ yumdownloader --resolve --destdir=/tmp ansible/<code>

參數說明:

  • —destdir:指定 rpm 包下載目錄(不指定時,默認為當前目錄)
  • —resolve:下載依賴的 rpm 包。

注意

<code>僅會將主軟件包和基於你現在的操作系統所缺少的依賴關係包一併下載。/<code>

方案三:yum 的 downloadonly 插件

<code># 安裝插件
$ yum -y install yum-download

# 下載 ansible 依賴包
$ yum -y install ansible --downloadonly --downloaddir=/tmp/<code>

注意

<code>與 yumdownloader 命令一樣,也是僅會將主軟件包和基於你現在的操作系統所缺少的依賴關係包一併下載。/<code> 

離線安裝 rpm

<code># 離線安裝
$ rpm -Uvh --force --nodeps *.rpm/<code>

https://serverfault.com/questions/470964/yumdownloader-vs-repotrack


分享到:


相關文章: