什么是rpm

1年前 (2022) 程序员胖胖胖虎阿
224 0 0

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....
http://rpm.pbone.net/
以tree命令对应的rpm包为例,下载界面可能是这样的:
什么是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支持的平台有:i386,i586,i686,sparc和alpha
    rpm和.src.rpm,是rpm包类型后缀,rpm是编译好的二进制包,.src.rpm是源码包
    特殊名称:
    (1)el*:表示发行商的版本,el6表示这个软件包是在rhel6.x/centos6.x下使用;rpm包有个特点,centOS7的rpm包一般只能装到CentOS7的系统里,CentOS6的软件包只能装到CentOS6的系统里。
    (2)devel:表示这个rpm包是软件的开发包
    (3)noarch:说明这样的软件包可以在任何平台安装和运行,不需要特定的硬件平台
    仅了解包名定义还无法帮助我们准确的找到我们需要的包,因为arch这一项我们还不太解
  2. 安装包的划分
    1.安装包按操作系统划分,可以分为:
    windows包,以.mis以及.exe结尾
    linux包,以.rpm以及.deb结尾
    2.也可以按照处理器进行划分,如:
    xxx.x86_64.rpm,xxx.x86.exe,xxx_amd64.deb
    上面x86_64,x86,amd64这三种属于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/zygbloc...
    至此,我们再看最开始的那张图,就能明白每个包适用的系统了。
    另外,要确定我们自己的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 查询软件包安装信息
    什么是rpm

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

什么是rpm

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

什么是rpm

  1. 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
版权声明:程序员胖胖胖虎阿 发表于 2022年10月19日 下午10:40。
转载请注明:什么是rpm | 胖虎的工具箱-编程导航

相关文章

暂无评论

暂无评论...