本文主要目的是yum 在安装rpm包的时候,下载的RPM及依赖包会保存在某个目录。
配置yum
yum 配置参照如下:
参照:http://www.cndba.cn/dave/article/154
安装 epel-release 包会自动配置在线yum源
[root@www.cndba.cn packages]# rpm -ivh epel-release-7-9.noarch.rpm
[root@www.cndba.cn yum.repos.d]# ll
total 16
-rw-r--r--. 1 root root 957 Nov 28 18:29 epel.repo
-rw-r--r--. 1 root root 1056 Nov 5 2012 epel-testing.repo
[root@www.cndba.cn yum.repos.d]# cat epel.repo
[epel]
name=Extra Packages for Enterprise Linux 6 - $basearch
#baseurl=http:/ /download.fedoraproject.org/pub/epel/6/$basearch
mirrorlist=https:/ /mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch
failovermethod=priority
enabled=0
gpgcheck=0
gpgkey=file:/ //etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
[epel-debuginfo]
name=Extra Packages for Enterprise Linux 6 - $basearch - Debug
#baseurl=http:/ /download.fedoraproject.org/pub/epel/6/$basearch/debug
mirrorlist=https:/ /mirrors.fedoraproject.org/metalink?repo=epel-debug-6&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:/ //etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
gpgcheck=1
[epel-source]
name=Extra Packages for Enterprise Linux 6 - $basearch - Source
#baseurl=http:/ /download.fedoraproject.org/pub/epel/6/SRPMS
mirrorlist=https:/ /mirrors.fedoraproject.org/metalink?repo=epel-source-6&arch=$basearch
failovermethod=priority
enabled=0
gpgkey=file:/ //etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6
gpgcheck=1
也可以配置163的yum 源:
[root@www.cndba.cn yum.repos.d]# cat CentOS-Base.repo
[base]
name=CentOS-$releasever -Base
baseurl=http:/ /mirrors.163.com/centos/7.4.1708/os/$basearch/
gpgcheck=1
gpgkey=http:/ /mirrors.163.com/centos/7.4.1708/os/x86_64/RPM-GPG-KEY-CentOS-7
#released updates
[updates]
name=CentOS-$releasever - Updates
baseurl=http:/ /mirrors.163.com/centos/7.4.1708/updates/$basearch/
gpgcheck=1
gpgkey=http:/ /mirrors.163.com/centos/7.4.1708/os/x86_64/RPM-GPG-KEY-CentOS-7
[extras]
name=CentOS-$releasever - Extras
baseurl=http:/ /mirrors.163.com/centos/7.4.1708/extras/$basearch/
gpgcheck=1
gpgkey=http:/ /mirrors.163.com/centos/7.4.1708/os/x86_64/RPM-GPG-KEY-CentOS-7
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
baseurl=http:/ /mirrors.163.com/centos/7.4.1708/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http:/ /mirrors.163.com/centos/7.4.1708/os/x86_64/RPM-GPG-KEY-CentOS-7
方法一: yum命令下载RPM包,而不安装
yum命令本身就可以用来下载一个RPM包,标准的yum命令提供了--downloadonly(只下载)的选项来达到这个目的。
$ sudo yum install --downloadonly <package-name>
默认情况下,一个下载的RPM包会保存在下面的目录中:
/var/cache/yum/x86_64/[centos/fedora-version]/[repository]/packages
以上的[repository]表示下载包的来源仓库的名称(例如:base、fedora、updates)
如果你想要将一个包下载到一个指定的目录(如/tmp):
$ sudo yum install --downloadonly --downloaddir=/tmp <package-name>
注意,如果下载的包包含了任何没有满足的依赖关系,yum将会把所有的依赖关系包下载,但是都不会被安装。
另外一个重要的事情是,在CentOS/RHEL 6或更早期的版本中,你需要安装一个单独yum插件(名称为 yum-plugin-downloadonly)才能使用--downloadonly命令选项:
实例:
[root@www.cndba.cn software]# sudo yum install --downloadonly --downloaddir=/packages perl-DBD-MySQL perl-Config-Tiny perl-Log-Dispatch perl-Parallel-ForkManager perl-Time-HiRes
下载的包和依赖包都保存在/packages目录下
[root@www.cndba.cn packages]# ll
total 1820
-rw-r--r--. 1 root root 14704 Nov 28 22:54 epel-release-7-9.noarch.rpm
-rw-r--r--. 1 root root 87119 Nov 28 22:57 mha4mysql-manager-0.56-0.el6.noarch.rpm
-rw-r--r--. 1 root root 36326 Nov 28 22:57 mha4mysql-node-0.56-0.el6.noarch.rpm
-rw-r--r--. 1 root root 27508 Nov 28 22:54 perl-Class-Load-0.20-3.el7.noarch.rpm
-rw-r--r--. 1 root root 25508 Nov 28 22:54 perl-Config-Tiny-2.14-7.el7.noarch.rpm
-rw-r--r--. 1 root root 23448 Nov 28 22:54 perl-Data-OptList-0.107-9.el7.noarch.rpm
-rw-r--r--. 1 root root 143504 Nov 28 22:54 perl-DBD-MySQL-4.023-5.el7.x86_64.rpm
-rw-r--r--. 1 root root 17524 Nov 28 22:54 perl-Email-Date-Format-1.002-15.el7.noarch.rpm
-rw-r--r--. 1 root root 36188 Nov 28 22:54 perl-IO-Socket-IP-0.21-4.el7.noarch.rpm
-rw-r--r--. 1 root root 116932 Nov 28 22:54 perl-IO-Socket-SSL-1.94-6.el7.noarch.rpm
-rw-r--r--. 1 root root 58928 Nov 28 22:54 perl-List-MoreUtils-0.33-9.el7.x86_64.rpm
-rw-r--r--. 1 root root 84300 Nov 28 22:54 perl-Log-Dispatch-2.41-1.el7.1.noarch.rpm
-rw-r--r--. 1 root root 60212 Nov 28 22:54 perl-Mail-Sender-0.8.23-1.el7.noarch.rpm
-rw-r--r--. 1 root root 29540 Nov 28 22:54 perl-Mail-Sendmail-0.79-21.el7.noarch.rpm
-rw-r--r--. 1 root root 111024 Nov 28 22:54 perl-MailTools-2.12-2.el7.noarch.rpm
-rw-r--r--. 1 root root 98316 Nov 28 22:54 perl-MIME-Lite-3.030-1.el7.noarch.rpm
-rw-r--r--. 1 root root 39184 Nov 28 22:54 perl-MIME-Types-1.38-2.el7.noarch.rpm
-rw-r--r--. 1 root root 16908 Nov 28 22:54 perl-Module-Implementation-0.06-6.el7.noarch.rpm
-rw-r--r--. 1 root root 19020 Nov 28 22:54 perl-Module-Runtime-0.013-4.el7.noarch.rpm
-rw-r--r--. 1 root root 29096 Nov 28 22:54 perl-Net-LibIDN-0.12-15.el7.x86_64.rpm
-rw-r--r--. 1 root root 9360 Nov 28 22:54 perl-Net-SMTP-SSL-1.01-13.el7.noarch.rpm
-rw-r--r--. 1 root root 292308 Nov 28 22:54 perl-Net-SSLeay-1.55-6.el7.x86_64.rpm
-rw-r--r--. 1 root root 18840 Nov 28 22:54 perl-Package-DeprecationManager-0.13-7.el7.noarch.rpm
-rw-r--r--. 1 root root 34856 Nov 28 22:54 perl-Package-Stash-0.34-2.el7.noarch.rpm
-rw-r--r--. 1 root root 32032 Nov 28 22:54 perl-Package-Stash-XS-0.26-3.el7.x86_64.rpm
-rw-r--r--. 1 root root 29128 Nov 28 22:54 perl-Parallel-ForkManager-1.18-2.el7.noarch.rpm
-rw-r--r--. 1 root root 38636 Nov 28 22:54 perl-Params-Util-1.07-6.el7.x86_64.rpm
-rw-r--r--. 1 root root 70620 Nov 28 22:54 perl-Params-Validate-1.08-4.el7.x86_64.rpm
-rw-r--r--. 1 root root 21508 Nov 28 22:54 perl-Sub-Install-0.926-6.el7.noarch.rpm
-rw-r--r--. 1 root root 43004 Nov 28 22:54 perl-Sys-Syslog-0.33-3.el7.x86_64.rpm
-rw-r--r--. 1 root root 52744 Nov 28 22:54 perl-TimeDate-2.30-2.el7.noarch.rpm
-rw-r--r--. 1 root root 46304 Nov 28 22:54 perl-Time-HiRes-1.9725-3.el7.x86_64.rpm
-rw-r--r--. 1 root root 24004 Nov 28 22:54 perl-Try-Tiny-0.12-2.el7.noarch.rpm
方法二:不使用yum downloadonly 插件,自动安装或升级的同时保留RPM包
yum 默认情况下,升级或者安装后,会删除下载的rpm包。
我们也可以如下设置升级后不删除下载的rpm包
vim/etc/yum.conf
[main]
cachedir=/var/cache/yum
keepcache=0
将 keepcache=0 修改为 keepcache=1, 安装或者升级后,在目录 /var/cache/yum 下就会有下载的 rpm 包了。