yum是基於Red Hat的系統(如CentOS、Fedora、RHEl)上的默認包管理器。使用yum,你能夠安裝或者更新一個RPM包,而且他會自動解決包依賴關係。可是有時候由於yum庫中RPM包版本的不肯定性,咱們想將一個RPM包下載到本地,用於之後的重複安裝。centos
yum命令自己就能夠用來下載一個RPM包,標準的yum命令提供了--downloadonly(只下載)的選項來達到這個目的。bash
$sudo yum install --downloadonly <package-name>
默認狀況下,一個下載的RPM包會保存在下面的目錄中:
/var/cache/yum/x86_64/[centos/fedora-version]/[repository]/packages
以上的[repository]表示下載包的來源倉庫的名稱(例如:base、fedora、updates)工具
若是你想要將一個包下載到一個指定的目錄(如/tmp):spa
$sudo yum install --downloadonly --downloaddir=/tmp <package-name>
注意,若是下載的包包含了任何沒有知足的依賴關係,yum將會把全部的依賴關係包下載,可是都不會被安裝。
另一個重要的事情是,在CentOS/RHEL 6或更早期的版本中,你須要安裝一個單獨yum插件(名稱爲 yum-plugin-downloadonly)才能使用--downloadonly命令選項:插件
$sudo yum install yum-plugin-downloadonly
若是沒有該插件,你會在使用yum時獲得如下錯誤:
Command line error: no such option: --downloadonlycode
另一個下載RPM包的方法就是經過一個專門的包下載工具--yumdownloader。 這個工具是yum工具包(包含了用來進行yum包管理的幫助工具套件)的子集。索引
$sudo yum install yum-utils
下載一個RPM包:it
$sudo yumdownloader <package-name>
下載的包會被保存在當前目錄中。你須要使用root權限,由於yumdownloader會在下載過程當中更新包索引文件。與yum命令不一樣的是,任何依賴包不會被下載。io
下載lsof示例:class
$sudo yumdownloader lsof --resolve --destdir=/data/mydepot/
--resolve 表示爲下載依賴