RPM包管理器学习

RPM包管理器

软件包分类

1、源码包
2、二进制包
源码包
大多数源码包是c或汇编语言编写成的。
要想编译源码包需要linux上安装工具gcc(这个工具是多语言的集成编译器,里面包含了c语言的编译器),c++语言编写的程序的编译器gcc-c++
yum install -y gcc gcc-c++
#gcc -c hello.c #-c 生成".o"头文件。这里会生成hello.o头文件,但是不会生成执行文件
#gcc -o hello hello.o #-o生成执行文件,指定执行文件名。这里生成的hello就是可执行文件
#./hello 执行文件
源码包特点
1)开源,如果有足够的能力,可以修改源代码
2)软件是本机编译,安装,所以更加适合自己的系统,更加稳定也效率更高,普遍认为源码包安装比二进制包安装效率高5%左右
3)卸载方便,删除安装目录,理论上认为没有什么残留
源码包缺点
1)安装过程步骤较多,尤其安装较大的软件集合时,容易出现拼写错误
2)编译过程时间较长,安装比二进制安装时间长
3)因为是编译安装,安装过程中一旦报错新手很难解决,因为我们安装这些软件绝大多数都不是我们自己开发的。
二进制包
二进制包分类,不同发行版本的linux系统中,二进制软件包的格式是不一样的
1)在Debian和ubuntu中,二进制软件包叫DPKG包
2)在Red Hat系列的系统中讲RPM包
我们学习的是CentOS7.6,所以我们在这里学习的是RPM包管理系统
RPM包的优点
1)包管理系统简单,只通过几个命令就可以实现包的安装、升级、查询和卸载
2)安装速度比源码包安装快的多
PRM包的缺点
1)软件包已经经过编译,看不到源代码
2)依赖性
RPM简单易用,常见的依赖关系:
1)树形依赖 a–>b–>c
2)环形依赖 a–>b–>c–>a
3)函数库依赖
安装某个软件,需要某个具体的文件,这个文件没有单独成包,是包含在某一个别的软件包中的。

rpm包的安装

rpm包命名规则
/mnt/Packages/Zsh-5.0.2-28.el7.x86_64.rpm
zsh 软件名
-5 主版本号
0. 次版本号
2- 修订
28. release(第几次发布版本)
el7 操作系统版本/软件发行商
x86_64.rpm 软件包是64位包
rpm包手工安装命令
1)安装命令
rpm -ivh 包全名(带绝对路径)
选项:
-i 安装(install)
-v 显示更详细的信息(verbose)
-h 显示安装进度(hash)
–nodeps 不检测依赖性安装,在实际的工作中不用。不管依赖性,强行安装。注意:这样不检测依赖性安装的软件基本是不能使用的,所以不建议这样做。
–replacefiles 替换文件安装
–replacepkgs 替换软件包安装
–force 强制安装。不管是否已经安装,都重新安装。就是–replacefiles和–replacepkgs的综合。
–test 测试安装。不会实际安装,只是检查一下依赖性
–prefix 指定安装路径,这个选项基本不用。如果指定了安装路径,软件没有安装到系统的默认路径中的话,系统会找不到这些安装的软件,rpm包的安装的卸载命令就不能卸载掉软件,卸载就需要你一个文件一个文件的删除。所以rpm包我们一般都不指定路径
依赖的解决办法
A、针对a–>b–>c这种依赖,先安装c,再安装b,最后安装a
B、针对a–>b–>c–>a这种依赖
1)强制安装—暴力型
使用rpm -i --force --nodeps 强制安装。忽略依赖关系。这种方法你可以先装A包,再装B,再装C,即使这样仍然会有隐患。
2)还可以一次性安装
可以把依赖的几个包拷出来放在同一个文件夹里 然后rpm -ivh *.rpm 这样也可以前提是一个依赖不少。
C、遇到函数库依赖,需要知道所缺文件在哪个软件包中,这需要在www.rpmfind.net上查询

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值