如何在Linux中安装本地rpm包 Linux rpm -ivh安装方法

说实话,使用 rpm-ivh 在 Linux 系统上安装本地 RPM 包非常容易,但对于初学者来说最常见的陷阱是依赖问题。
我第一次安装监控工具的时候,直接运行rpm -ivh就卡住了,报错。
屏幕上显示出许多陌生的包名。
我太紧张了,开始大汗淋漓。

看看这个命令 rpm -ivh package.rpm。
-i是安装,-v是显示进程,-h是像井号一样滚动的进度条。
这是非常直观的。
但有趣的是,这很“直”。
如果我给它一个包,它要么安装成功,要么直接崩溃。
我不在乎你的系统还缺少什么“成分”。

我记得在旧的 CentOS 系统上,我安装了 Python 库的 RPM 包,并且只安装了 rpm -ivh。
系统卡住并不断显示“依赖性问题”。
经过长时间的查阅,我发现我必须手动去一一手动查找、下载和安装这些依赖包。
说实话,那一幕实在是太神奇了。

然后我切换到 yum localinstall,它更聪明。
当您将软件包放入其中时,yum 会自动前往仓库或指定路径查找这些依赖项,并安装一行命令中缺少的任何内容。
上次,我们在测试环境中安装了旧版本的 ERP 系统。
所有RPM包都直接使用yum localinstall。
这是一次很棒的经历,整个过程我没有遇到任何问题。

安装前检查也是一项技术任务。
首先,你需要检查这个包是什么,包含哪些文件,以及结构是否正确。
我经常使用 rpm -qip package.rpm 来检查软件包描述、版本等。
还有 rpm -qlp package.rpm 它会在安装后创建一个文件列表,这样您就不会发现自己安装了不应该安装的东西。
比如我曾经安装过一个PDF阅读器,使用rpm -qlp,发现需要安装大量的字体文件。
当时我就想,有这个必要吗?事实证明这确实是必要的。

权限和结构也是两个障碍。
您必须以 root 用户身份安装或使用 sudo。
否则,您将收到“权限被拒绝”消息。
我再次尝试在 x8 6 机器上安装 ARM 架构包,但由于文件头中的机器代码不匹配而崩溃。
就像拼图游戏一样,所有的碎片都必须适合。

版本冲突也很常见。
rpm -Uvh 如果系统已安装同名软件如果您使用 进行升级,它将被合并或替换。
我的一个朋友使用了这个技巧,最终覆盖了他的系统附带的某些库,这导致其他软件出现问题,最终需要手动拆卸。

一般来说,rpm-ivh适合非常简单且没有依赖关系的包,或者手动设置所有依赖关系的包。
如果您的包比较复杂并且有很多依赖项,我们建议使用 yum 或 dnf 以避免后顾之忧。
我们建议首先运行 rpm -qip 检查软件包信息。
如果没有问题,请尝试 rpm -ivh。
如果这不起作用,请尝试 yum localinstall。
流程大致是这样的:首先检查软件包信息,尝试安装,如果安装失败使用yum,如果安装成功则完成。

如何在Linux中强制安装包 Linux rpm --force覆盖安装

要强制安装 RPM 软件包,请使用 rpm --force。
小心文件冲突和依赖性问题。
先试试 dnf/yum,很简单!
强制安装方法:rpm -ivh --force package_name.rpm
i:包装
v:看进程
H:检查进度
f:力等于re、re、o
高风险,可能会损坏系统。
它在修复文件和恢复版本时使用。

常见场景:
修复损坏的文件:rpm -ivh --force python-3 .6 .rpm
回滚版本:rpm -ivh --force nginx-1 .1 8 .rpm
替代方案:
dnf 重新安装 package_name
dnf install --replacepkgs package_name.rpm
先备份环境并测试一下,然后再写操作。
除非有特殊需要,先进的工具更安全。

Linux下RPM软件包如何安装及卸载?

说实话,当谈到Linux系统中的RPM时,我还是在摸着石头过河。
这个工具真的很棒。
请记住,像 Red Hat 这样的旧发行版无法在没有 RPM 的情况下管理软件。
最让我印象深刻的是,当我刚加入公司时,服务器上有很多破损的包。
我检查了rpm -qa,发现有数百个软件包等待更新。
此时我的手在颤抖,我几乎用rpm -Uvh 来进行全面升级。
幸亏我反应快,不然系统就崩溃了。

安装过程最简单,但需要注意细节。
例如,rpm -ivh package.rpm 加上 -h 用于显示安装进度。
我以前总是忘记添加,每次都得等待。
有一次我安装了一个开发包,忘记检查依赖关系。
结果安装后编译器就崩溃了,这让我很困惑。
后来才知道必须使用rpm -q --requires package 来查看缺少什么,然后单独安装依赖包。
这个教训太深刻了。

在卸载时,我通常使用rpm -q package来确认包名,避免意外卸载。
例如,公司有一个旧版本的ERP系统,使用后想将其删除。
但是rpm -e package uninstall命令直接报错,说文件被别的包占用了。
这需要使用 rpm -Va 检查,看看哪些文件没有正确清理,然后手动删除。
在这种情况下你必须添加--force,但老实说我通常不敢使用它,因为担心破坏系统。

升级过程将最考验您的耐心。
记得有一次升级Web服务器时,直接使用rpm -Uvh package.rpm,但是系统挂了。
查了资料发现需要先停止Nginx、Tomcat等相关服务。
另一个危险是升级有时会破坏配置文件,例如 /etc/nginx/nginx.conf。
此时需要备份原文件,使用rpm -U --reinstall package.rpm重新安装并覆盖备份文件。

我不经常使用验证操作,但上次检查系统运行状况时,我使用 rpm -Vf /etc/crontab 发现有一个文件被更改。
我花了很长时间才弄清楚它是由特定脚本更改的。
这个命令非常有用。
它可以告诉您文件大小、权限等是否已更改。

我通常不通过 --force 和 --nodeps 使用它们。
前者太危险了。
如果强制安装导致依赖关系混乱,系统将挂起并且无法找到解决方案。
后者更是没有必要。
忽略依赖关系肯定会导致问题,因为正如我所说,编译会使系统崩溃。
除非绝对必要,一般不会触及这些参数。

总的来说,RPM对于熟悉的人来说是个好东西,但是初学者需要小心。
因为我当年遇到的坑,可以少走一些弯路。
说到系统管理,最重要的是细心。

Linux下RPM软件包如何安装及卸载?

RPM 是一个 Linux 包管理工具。
十年前,我指导一个团队使用RPM来升级系统。
结果,由于没有正确处理依赖关系,系统崩溃了。
这是一个陷阱。