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 的话流程类似,但包版本和依赖会有差异。需要我帮你查具体某个包的离线安装依赖链吗?

相关推荐
青瓦梦滋11 小时前
协议定制/序列化-反序列化(Linux视角)
linux·服务器·网络·c++
阿成学长_Cain13 小时前
Linux dirs命令详解|Bash目录堆栈管理快速切换目录实战教程
linux·运维·前端·数据库
ICECREAM14 小时前
Linux 进程间通讯(IPC)——总结
linux
想你依然心痛16 小时前
嵌入式Linux安全加固:SELinux、Capabilities与Seccomp——强制访问控制与沙箱
linux·运维·安全
REDcker17 小时前
macOS 挂载 Linux 远程目录详解
linux·运维·macos
2601_9615934217 小时前
Mac 上搭建Linux环境吗?VMware + CentOS Stream 9 镜像快速部署
linux·运维·ide·macos·centos
dddwjzx17 小时前
嵌入式Linux C应用编程入门——线程 (二)
linux·嵌入式
写代码的学渣17 小时前
Linux systemd 开机启动日志逐行详细解析报告
linux·运维·服务器
阿成学长_Cain18 小时前
Linux telinit 命令详解:运行级别切换|关机重启|系统维护一站式掌握
linux·运维·前端·网络
qeen8720 小时前
【Linux】指令补充与shell的简单介绍
linux·运维·服务器