linux在非联网、无网络环境下,使用yumdownload、reportrack方法安装rpm包

文章目录


前言

当开发者在联网环境下使用Linux时,可以轻松地通过yum或apt-get安装软件。然而,在公司和企业中,由于安全原因,生产环境通常无法访问互联网,这就需要进行离线安装。离线安装有两种主要方式可选:

  1. 源码编译:源码编译耗时且需要合适的编译环境,因此一般情况下较少选择此方法。
  2. RPM包安装 :相比源码编译,使用离线的RPM包安装更为便捷和高效。
    因此,本文将详细介绍在无网络环境下如何进行RPM包的安装和使用。

1、下载yum-utils​​

首先,在一台可联网的虚拟机上,下载​​yum-utils工具包​​。对于 CentOS/RHEL 系统,可以使用以下命令:

shell 复制代码
sudo yum install yum-utils

在这个工具包中,两个非常有用的命令,可以帮助用户在没有网络连接的情况下,获取软件包及其依赖项并进行离线安装。分别是:

  1. yumdownloader
  2. repotrack

2、yumdownloader

在安装 yum-utils 包后。在大多数基于 RHEL/CentOS 的系统上,可以直接使用以下组合命令去下载:

shell 复制代码
yumdownloader --resolve --destdir=<destination-folder> <package-name>
复制代码
解释:
 <package-name>:替换为要下载的软件包的名称。
--resolve:此命令将下载指定软件包及其所有依赖项。
--destdir:指定下载目录。将 <destination-folder> 替换为要保存软件包的目录。

以下载net-tools为例:

shell 复制代码
yumdownloader --resolve --destdir=/opt/temp/yumdownloader/net-tools net-tools

下载的内容:

shell 复制代码
cd /opt/temp/yumdownloader/net-tools

3、repotrack

可以直接使用以下命令去下载:

powershell 复制代码
repotrack -p <destination-folder> <package-name>
复制代码
解释:
 <package-name>:替换为要下载的软件包的名称。
-p:指定下载的地址。将 <destination-folder> 替换为要保存软件包的目录。

以下载net-tools为例:

shell 复制代码
repotrack -p /opt/temp/repotrack/net-tools net-tools

下载的内容:

shell 复制代码
cd /opt/temp/repotrack/net-tools

4、区别:

总之,两个命令的选择,取决于具体需求和场景:

yumdownloader:下载指定软件包及其依赖项,下载速度较快。但它无法自动下载依赖包的依赖项 ,需要手动处理。

repotrack:下载整个软件仓库的所有软件包及其依赖项,并自动处理软件包之间的依赖关系,节省了寻找依赖项的时间。但是下载速度较慢。

两个命令如何选择?
对于新的虚拟机,由于缺少的安装包较多,建议使用 repotrack。
当需要进行安装包升级,或者所需软件包不缺少依赖项时,推荐使用 yumdownloader。


总结

yumdownloader:下载速度较快。但是无法下载依赖包的依赖包 ;

repotrack:下载速度较慢。但可以下载依赖包的依赖包。

相关推荐
xbzb1 天前
容器 IP 每次重建都变?docker network 五种模式与自定义网桥固定地址
网络·docker·容器·ip·network·固定
火云代理1 天前
同一个网站,有的网络能打开、有的打不开?认识 IPv4 与 IPv6 的访问差异
服务器·网络·网络协议·tcp/ip·测试工具·php·状态模式
坤坤子吖1 天前
Linux网络编程:TCP 粘包与半包问题,如何正确处理 TCP 流式数据?
linux·服务器·网络·笔记·网络协议·学习
AI_Gump1 天前
Harness篇|DeepSeek Harness 上手机:五条安卓移植路线与 App 内 Linux 拆解
android·linux·人工智能·智能手机·deepseek
星恒随风1 天前
MySQL 从零入门(六):复合查询详解——多表查询、自连接、子查询与 UNION
linux·服务器·数据库·mysql
少司府1 天前
嵌入式入门篇(二):初识STM32F103ZET6
linux·python·stm32·单片机·嵌入式硬件·mcu·嵌入式软件
无足鸟ICT1 天前
【RHCA+】IO调度算法
linux·服务器
打工仔折腾 AI1 天前
Changedetection.io 网页变动监控:Docker 部署、通知配置与公网暴露实践
运维·人工智能·后端·python·docker·容器·性能优化
火云代理1 天前
Python 使用代理 IP 前,先弄清 Requests 的配置来源与验证方法
网络·python·网络协议·tcp/ip·ip
wacsii1 天前
【Linux进程(四)】命令行参数与环境变量
linux·服务器