首页 > 编程知识 正文

rpm命令

时间:2023-05-06 15:10:59 阅读:237871 作者:1864

CentOS7主要有rpm和yum这两种包软件的管理。两种包的管理各有用处其中主要区别是YUM使用简单但需要联网YUM会去网上的YUM包源去获取所需要的软件包。而RPM的需要的操作经度比较细需要我们做的事情比较多。

软件包的安装和卸是很平常的事但在Linux上面却不简单。Linux的其中一个哲学就是一个程序只做一件事并且做好。组合小程序来完成复杂的任务这样做有很多好处但是各个小程序之间往往会存在着复杂的依赖关系。这时就有了redhat包管理器rpm。英文是redhat package manager redhat 软件包的管理。

rmp原本是Red Hat Linux发行版专门用来管理Linux各项套件的程序由于它遵循GPL规则且功能强大方便因而广受欢迎。逐渐受到其他发行版的采用。RPM套件管理方式的出现让Linux易于安装升级间接提升了Linux的适用度。

rpm是以一种数据库记录的方式来将所需要的套件安装在Linux主机的一套管理程序。也就是说Linux系统中存在一个关于rpm的数据库它记录了安装的包与包之间的依赖相关性。rpm包是预先在Linux主机上编译好并打包的文件安装起来非常快捷。

要安装rpm包首先需要下载对应包可用的下载链接

http://rpmfind.net/ http://www.rpmseek.com/index.html http://rpm.pbone.net/

以tree命令对应的rpm包为例下载界面可能是这样的 可以看到有许多不同版本的rpm包那么我们在确定应该下载哪个前需要先了解rpm包的包名含义。

1. rpm包名详解

rpm包以.rpm结尾而源码包以.src.rpm结尾。RPM软件包命令规则

name-version-arch.rpm name-version-arch.src.rpm

以tree-2.0.2-1.2.x86_64.rpm为例

name如tree是软件的名称version如2.0.2-1.2是软件的版本号版本号格式通常为“主版本号.次版本号.修正号”。arch如x86_64是表示包适用的硬件平台目前rpm支持的平台有i386i586i686sparc和alpharpm和.src.rpm是rpm包类型后缀rpm是编译好的二进制包.src.rpm是源码包特殊名称 1el*表示发行商的版本el6表示这个软件包是在rhel6.x/centos6.x下使用rpm包有个特点centOS7的rpm包一般只能装到CentOS7的系统里CentOS6的软件包只能装到CentOS6的系统里。 2devel表示这个rpm包是软件的开发包 3noarch说明这样的软件包可以在任何平台安装和运行不需要特定的硬件平台

仅了解包名定义还无法帮助我们准确的找到我们需要的包因为arch这一项我们还不太解

2. 安装包的划分

1.安装包按操作系统划分可以分为 windows包以.mis以及.exe结尾 linux包以.rpm以及.deb结尾 2.也可以按照处理器进行划分如 xxx.x86_64.rpmxxx.x86.exexxx_amd64.deb 上面x86_64x86amd64这三种属于x86架构。 xxx.aarch64.rpm 而aarch64这种属于arm架构

3. 处理器架构简介

关于arm架构和x86架构的介绍不是此次学习重点简略介绍。

3.1 x86架构

一般PC机都选择x86这种架构处理器

x86和x64 x86是指32位处理器、(x86_64有时简称为x64)x64是指64位处理器因为x64指令是在x86指令集上扩展出来的所以x86编译出来的程序可以在64位处理器上运行反过来就不行。

x64和amd64 这个有点历史渊源一开始interl和amd都是x86架构后来intel和amd都开始研发各自的64位处理器指令集intel选择开辟新的指令集amd则选择在x86上扩展。后来证明intel方案失败了最终intel也采用amd的64指令标准做了稍微的修改所以有了x64和amd64。

3.2 arm架构

32位处理器需要armv7,或者armv7s架构 64位处理器需要arm64架构。

3.3 其他

i386 就是已经即将被淘汰的x86的以奔腾系列位代表的32位架构 power9 ppc64le ppc64对应IBM的power系列仅作了解 aarch64 就是arm架构的64位系统aarch64和arm64指的是同一件事两者已合并现称为aarch64

更多细节以及处理器发展可参考文章https://blog.csdn.net/zygblock/article/details/60867744

至此我们再看最开始的那张图就能明白每个包适用的系统了。 另外要确定我们自己的linux版本可以通关查看镜像文件的命名或者终端输入uname -a查看

4. rpm常用命令

-i 安装软件包(–install) 可选附带参数 –nodeps 不验证软件包的依赖 –force 强制安装即使覆盖其他包的文件也要安装 -v 可视化提供更多的详细信息的输出 -h 显示安装进度 -a 查询所有已经安装的软件包 -f 查询文件所属于的软件包 -q 查询软件包通常用来看下还未安装的软件包注意查询时不需要带包名后缀只需命令名如rpm -q tree -l 显示软件包的文件列表 -e 卸载指定软件包注意卸载时需要指定具体包名后缀如 rpm -e tree-1.7.0-1.30.x86_64 -U 升级软件包很少用

常用组合 -ivh 安装指定rmp包并显示安装进度 -qa 查询所有已经安装的软件包 -qi 查询软件包安装信息

-ql 显示软件包的文件列表

-qf 查询文件所属的文件包

5. Ubuntu无法安装rpm包

ubuntu RPM should not be used directly install RPM packages, use Alien instead! Ubuntu的软件包格式是deb如果要安装rpm的包则要先用alien把rpm转换成deb

1.alien默认没有安装所以首先要安装它 sudo apt-get install alien 2.将rpm转换位deb完成后会生成一个同名的xxxx.deb sudo alien xxxx.rpm 3.安装 sudo dpkg -i xxxx.deb

关于ubuntu以及dpkg命令另起文章介绍

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。