Linux系统中RPM包管理:从rpm到YUM和dnf
1. RPM包基础
在Linux系统里,上游软件供应商通常会在特定许可条件下,将软件提供给有需求的用户。Linux发行版会获取软件的源代码,将其编译成二进制文件,再把这些二进制文件与文档、配置文件、脚本及其他组件整合在一起,打包成RPM(Red Hat Package Manager)包。
RPM包被签名后,会被放置到针对特定发行版和架构(如32位x86、64位x86等)的RPM仓库中。这个仓库可以存于安装光盘或DVD,也可以位于作为FTP、Web或NFS服务器的目录里。
1.1 使用rpm命令安装RPM包
最初,安装RPM包使用的是 rpm
命令。借助该命令,能实现安装、更新、查询、验证和移除RPM包等操作。不过, rpm
命令存在一些显著缺点:
- 依赖问题 :多数RPM包要正常运行,系统需安装其他软件(如库、可执行文件等)。用 rpm
安装包时,若依赖包未安装,安装就会失败,还会提示所需组件。此时,你得自行查找包含该组件的包,而这个依赖包自身可能还有其他依赖,这就是所谓的“依赖地狱”。
- RPM文件位置 :使用 rpm
安装包时,需提供RPM文件的确切位置。例如,若RPM在当前目录,要给出 firefox - 67.0 - 4.fc30.x86_64.rpm
;若在服务器上,则需提供完整的URL,如 http://example.com/