如何从Yum库下载rpm包但不安装

目标

yum是基于Red Hat的系统(如CentOS、Fedora、RHEl)上的默认包管理器。使用yum,你能够安装或者更新一个RPM包,而且他会自动解决包依赖关系。可是有时候由于yum库中RPM包版本的不肯定性,咱们想将一个RPM包下载到本地,用于之后的重复安装。centos

方法

方法一:yum

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

方法二: Yumdownloader

另一个下载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 表示为下载依赖

相关文章
相关标签/搜索