使用yum仅下载rpm及其依赖
yum命令本身就可以用来下载一个RPM包,标准的yum命令提供了-downloadonly(只下载)的选项来达到这个目的。
$ sudo yum install --downloadonly
默认情况下,一个下载的RPM包会保存在下面的目录中:
/var/cache/yum/x86_64/[centos -version]/[repository]/packages以上的[repository]表示下载包的来源仓库的名称(例如:base、fedora、updates)如果你想要将一个包下载到一个指定的目录(如/tmp):
$ sudo yum install --downloadonly --downloaddir=/tmp
注意,如果下载的包包含了任何没有满足的依赖关系,yum将会把所有的依赖关系包下载,但是都不会被安装。另外一个重要的事情是,在CentOS/RHEL 6或更早期的版本中,你需要安装一个单独yum插件(名称为yum-plugin-downloadonly)才能使用–downloadonly命令选项:
$ sudo yum install yum-plugin-downloadonly
如果没有该插件,你会在使用yum时得到以下错误:Command line error: no such option: –downloadonly补充:RHEL7/CentOS7使用yum安装的过程中有[y/d/n]的选项,按d就是下载了。
虽然上面的便利方法,但是不能满足所有条件。安装包及依赖下载还需要分为以下几种情况:(甚至更多)
1、对于官方yum源参考包含的软件及依赖:以gcc为例:
$ sudo yum install --downloadonly --downloaddir=/home/admin/packages/gcc gcc
2、对于相Nginx,MySQL之类的需要第三方源的软件及依赖,以Nginx,MySQL为例:2.1、对于Nginx:
$ sudo vim /etc/yum.repos.d/nginx.repo
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1
$ mkdir -p /home/admin/packages/nginx
$ sudo yum makecache
$ sudo yum install --downloadonly --downloaddir=/home/admin/packages/nginx nginx
2.2、对于MySQL相关类:
wget http://repo.mysql.com//mysql57-community-release-el7-8.noarch.rpm
rpm -ivh mysql57-community-release-el7-8.noarch.rpm
$ sudo vim /etc/yum.repos.d/mysql-community.repo #编辑配置安装版本为5.6,参考网址http://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/。
$ mkdir -p /home/admin/packages/mysql
$ sudo yum install --downloadonly --downloaddir=/home/admin/packages/mysql mysql-community-server
3、对于Supervisor这类Python程序及依赖下载:
$ mkdir -p /home/admin/packages/supervisor
$ sudo yum install --downloadonly --downloaddir=/home/admin/packages/supervisor python-setuptools
wget https://pypi.python.org/packages/44/80/d28047d120bfcc8158b4e41127706731ee6a3419c661e0a858fb0e7c4b2d/supervisor-3.3.0.tar.gz
下载依赖python-meld3:源网址:https://pkgs.org/centos-7/epel-x86_64/python-meld3-0.6.10-1.el7.x86_64.rpm.html
wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-7.noarch.rpm
rpm -Uvhepel-release-7-7.noarch.rpm
$ sudo yum install --downloadonly --downloaddir=/home/admin/packages/supervisor python-meld3
4、对于需要源码编译安装的包下载.直接下载即可。如:
wget https://pypi.python.org/packages/45/a0/317c6422b26c12fe0161e936fc35f36552069ba8e6f7ecbd99bbffe32a5f/meld3-1.0.2.tar.gz