RHEL 7.3 离线安装 RPM 包

The user is asking about how to offline install .rpm files on Red Hat 7.3. This is a straightforward technical question, I'll provide a clear and concise answer.

RHEL 7.3 离线安装 RPM 包

基本安装命令

bash 复制代码
# 安装单个 RPM 包
rpm -ivh package-name.rpm

# 升级已安装的包
rpm -Uvh package-name.rpm

参数说明:

参数 含义
-i install,安装
-U upgrade,升级(未安装则安装)
-v verbose,显示详细信息
-h hash,显示进度条 ###

常见问题与处理

1. 依赖缺失

离线环境下最常见的问题,rpm 不会自动解决依赖:

bash 复制代码
# 报错示例
error: Failed dependencies:
    libnettle.so.4()(64bit) is needed by package-1.0.rpm

解决方法:把依赖包一起拷贝到服务器,批量安装:

bash 复制代码
# 把所有相关 rpm 放到一个目录下,一次性安装
rpm -ivh /path/to/rpms/*.rpm

# 或者指定目录
rpm -ivh --nodeps /path/to/rpms/*.rpm  # ⚠️ 跳过依赖检查(不推荐)

2. 如何提前获取所有依赖(在有网的机器上)

这是离线安装的关键步骤------在联网的同版本系统上下载依赖

bash 复制代码
# 方法一:yumdownloader(推荐)
yum install -y yum-utils
yumdownloader --resolve --destdir=/tmp/rpms/ package-name

# 方法二:repotrack(下载更完整的依赖链)
repotrack -p /tmp/rpms/ package-name

# 方法三:只下载不安装
yum install --downloadonly --downloaddir=/tmp/rpms/ package-name

然后把 /tmp/rpms/ 整个目录拷贝到离线服务器上。

3. 包冲突

bash 复制代码
# 报错示例
file /usr/lib64/xxx from install of package-1.0.rpm conflicts with file from package-old-0.9.rpm
bash 复制代码
# 先卸载旧包
rpm -e package-old

# 或者强制覆盖安装
rpm -ivh --force package-name.rpm

4. 已安装更高版本

bash 复制代码
# 报错示例
package package-2.0.rpm (which is newer than package-1.0.rpm) is already installed
bash 复制代码
# 强制降级
rpm -ivh --oldpackage package-name.rpm

推荐流程:用本地 Yum 仓库安装(最规范)

相比逐个 rpm -ivh,搭建本地 yum 源可以自动解决依赖关系

bash 复制代码
# 1. 把所有 rpm 包拷贝到服务器某个目录,如 /opt/local-repo
mkdir -p /opt/local-repo
# 上传 rpm 文件到此目录

# 2. 创建仓库元数据(需要 createrepo,没有的话也能手动装)
createrepo /opt/local-repo

# 3. 配置本地 repo
cat > /etc/yum.repos.d/local.repo << 'EOF'
[local]
name=Local RPM Repository
baseurl=file:///opt/local-repo
enabled=1
gpgcheck=0
EOF

# 4. 清缓存并安装
yum clean all
yum makecache
yum install package-name

提示 :如果 createrepo 也不可用,可以在联网的同版本机器上 yumdownloader createrepo 把它和依赖一起下好带过去先装上。


速查表

场景 命令
安装单个包 rpm -ivh xxx.rpm
批量安装(自动处理依赖顺序) rpm -ivh *.rpm
强制安装(忽略冲突) rpm -ivh --force xxx.rpm
跳过依赖检查 rpm -ivh --nodeps xxx.rpm
查看包是否已安装 `rpm -qa
查看包安装了哪些文件 rpm -ql package-name
查看文件属于哪个包 rpm -qf /path/to/file
卸载包 rpm -e package-name

你是在继续之前 RHEL 6.5 SNMP 的离线安装工作吗?如果是 RHEL 7.3 的话流程类似,但包版本和依赖会有差异。需要我帮你查具体某个包的离线安装依赖链吗?

相关推荐
阿黎021411 分钟前
Linux驱动
linux
tjjingpan15 分钟前
HCIP-Datacom Core Technology V1.0_20 IPv6概述
linux·服务器·网络
云泽80831 分钟前
Linux基础开发工具(三):Vim高级配置、Swap恢复机制与Sudo权限白名单详解
linux·运维·vim
qetfw1 小时前
CentOS 7 vsftpd.conf 配置文件详解:监听、用户、权限、被动模式与 TLS
linux·运维·centos·ftp·vsftpd
风曦Kisaki1 小时前
Kubernetes(K8s)笔记Day04:控制器(ReplicaSet 与Deployment),滚动更新及回滚,滚动更新策略,Pod 的 DNS 策略
linux·运维·笔记·docker·容器·kubernetes
code_whiter1 小时前
初阶linux2环境基础开发工具完整教程
linux
AmazingEgg1 小时前
RHCSA 第三天学习笔记
linux
数聚天成DeepSData1 小时前
外贸海关进出口数据去哪免费下载?从统计到明细的查找指南
linux·服务器·开发语言·前端·网络·人工智能·自然语言处理
Huangjin007_1 小时前
【Linux 系统篇(十)】基础开发工具(五) —— 第一个系统程序 - 进度条
linux·运维·服务器
时空无限2 小时前
linux mellanox 网卡队列 irq rps 相关
linux·运维