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
本文由 空心菜 创作,采用 知识共享署名4.0 国际许可协议进行许可
本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名
最后编辑时间为: Jan 11, 2020 at 03:24 pm