利用yum下载离线软件安装包

in 互联网技术 with 0 comment  访问: 5,237 次

yum是基于Red Hat的系统(如CentOS、Fedora、RHEl)上的默认包管理器。使用yum,你可以安装或者更新一个RPM包,并且他会自动解决包依赖关系。

如果你在一个没有网络的忘记想利用网络Yum安装源安装包实现不了,这时候你就需要自己下载你所需要的软件的安装包,构建内网安装Yum源也好还是手动安装也好是极其方便的,这时候就可以用到如下两种方式。

Yum方式

yum命令本身就可以用来下载一个RPM包,标准的yum命令提供了--downloadonly(只下载)的选项来达到这个目的。

yum install --downloadonly <package-name>

默认情况下,一个下载的RPM包会保存在下面的目录中:

/var/cache/yum/x86_64/[centos/fedora-version]/[repository]/packages

以上的[repository]表示下载包的来源仓库的名称(例如:base、fedora、updates)

如果你想要将一个包下载到一个指定的目录(如/data/local-repo/Packages/):

shell yum install --downloadonly --downloaddir=/data/local-repo/Packages/ <package-name>

如上安装会有两种情况,1. 你本机已经安装了你想下载的离线软件包 2. 会报no such option: --downloadonly的错误提示信息

本机已经安装了想下载的软件包情况:

# yum install --downloadonly --downloaddir=/data/local-repo/Packages/ rsync
已加载插件:fastestmirror, security
设置安装进程
Loading mirror speeds from cached hostfile
包 rsync-3.0.6-12.el6.x86_64 已安装并且是最新版本
无须任何处理

no such option: --downloadonly的错误提示信息:

yum install yum-plugin-downloadonly 

Yumdownloader 方法

另外一个下载RPM包的方法就是通过一个专门的包下载工具--yumdownloader。 这个工具是yum工具包(包含了用来进行yum包管理的帮助工具套件)的子集。

yum install yum-utils 

下载一个RPM包:

yumdownloader <package-name>

下载的包会被保存在当前目录中。你需要使用root权限,因为yumdownloader会在下载过程中更新包索引文件。与yum命令不同的是,任何依赖包不会被下载。

如下是下载Zabbix软件包示例:

yumdownloader zabbix-server-mysql zabbix-web-mysql zabbix-agent zabbix-get zabbix-java-gateway zabbix-proxy-mysql --resolv  --destdir=/data/local-repo/Packages/ # resolv下载依赖

yumdownloader 不会有yum那种提示本地已经安装了你要下载的软件包的情况,所以推荐用yumdownloader下载

构建安装源

# yum -y install createrepo
# cd /data/local-repo/
# createrepo -o . .
Spawning worker 0 with 68 pkgs
Worker 0: error: rpmts_HdrFromFdno: headerRead failed: hdr blob(159700): BAD, read returned 107515
Worker 0: Error: Could not open local rpm file: /data/local-repo/./Packages/zabbix-web-4.0.16-1.el6.noarch.rpm: RPM Error opening Package
Workers Finished
Gathering worker results

Saving Primary metadata
Saving file lists metadata
Saving other metadata
Generating sqlite DBs
Sqlite DBs complete

local-repo 目录即为创建的本地yum安装源

配置yum源:

# vi /etc/yum.repos.d/zabbix-local.repo
[zabbix-local]
name=Zabbix - Local
baseurl=file:///data/local-repo/
gpgcheck=0
enabled=1

参考: http://ask.xmodulo.com/yum-download-rpm-package.html

WeZan