文章目录
- 前言
- 1、下载yum-utils
- 2、yumdownloader
- 3、repotrack
- 4、安装
- 5、yumdownloader和repotrack的区别
- 总结
前言
当开发者在联网环境下使用Linux时,可以轻松地通过yum或apt-get安装软件。然而,在公司和企业中,由于安全原因,生产环境通常无法访问互联网,这就需要进行离线安装。离线安装有两种主要方式可选:
- 源码编译:源码编译耗时且需要合适的编译环境,因此一般情况下较少选择此方法。
- RPM包安装:相比源码编译,使用离线的RPM包安装更为便捷和高效。
因此,本文将详细介绍在无网络环境下如何进行RPM包的安装和使用。
1、下载yum-utils
首先,在一台可联网的虚拟机上,下载yum-utils工具包。对于 CentOS/RHEL 系统,可以使用以下命令:
sudo yum install yum-utils
在这个工具包中,两个非常有用的命令,可以帮助用户在没有网络连接的情况下,获取软件包及其依赖项并进行离线安装。分别是:
- yumdownloader
- repotrack
2、yumdownloader
在安装 yum-utils 包后。在大多数基于 RHEL/CentOS 的系统上,可以直接使用以下组合命令去下载:
yumdownloader --resolve --destdir=<destination-folder> <package-name>
解释:<package-name>:替换为要下载的软件包的名称。
--resolve:此命令将下载指定软件包及其所有依赖项。
--destdir:指定下载目录。将 <destination-folder> 替换为要保存软件包的目录。
以下载net-tools为例:
yumdownloader --resolve --destdir=/opt/temp/yumdownloader/net-tools net-tools
下载的内容:
cd /opt/temp/yumdownloader/net-tools
3、repotrack
可以直接使用以下命令去下载:
repotrack -p <destination-folder> <package-name>
解释:<package-name>:替换为要下载的软件包的名称。
-p:指定下载的地址。将 <destination-folder> 替换为要保存软件包的目录。
以下载net-tools为例:
repotrack -p /opt/temp/repotrack/net-tools net-tools
下载的内容:
cd /opt/temp/repotrack/net-tools
4、安装
将下载的 RPM 包上传到没有网络连接的虚拟机中。建议将其放在一个文件夹下,并使用以下命令批量解压并安装多个 RPM 包:
rpm -Uvh *.rpm --force --nodeps
解释:
-Uvh:执行升级操作并显示详细的安装进度。
*.rpm:指定要安装的RPM软件包,*.rpm通配符表示当前目录下的所有.rpm文件。
--force:强制安装,即覆盖掉已有的同名软件包。
--nodeps:不检查和处理软件包依赖关系。
5、yumdownloader和repotrack的区别
总之,两个命令的选择,取决于具体需求和场景:
yumdownloader:下载指定软件包及其依赖项,下载速度较快。但它无法自动下载依赖包的依赖项,需要手动处理。
repotrack:下载整个软件仓库的所有软件包及其依赖项,并自动处理软件包之间的依赖关系,节省了寻找依赖项的时间。但是下载速度较慢。
两个命令如何选择?
对于新的虚拟机,由于缺少的安装包较多,建议使用 repotrack。
当需要进行安装包升级,或者所需软件包不缺少依赖项时,推荐使用 yumdownloader。
总结
yumdownloader:下载速度较快。但是无法下载依赖包的依赖包 ;
repotrack:下载速度较慢。但可以下载依赖包的依赖包。