软件包管理介绍
软件包分类
- 源码包
- 脚本安装包
- 二进制包(RPM包,系统默认包)
源码包
源码包的优点是:
- 开源,如果有足够的能力,可以修改源代码
- 可以自由选择所需的功能
- 软件是编译安装,所以更加适合与自己的系统,更加稳定效率更高
- 卸载方便
源码包的缺点:
- 安装过程步骤较多,尤其是安装较大的软件集合时(如LAMP环境搭建),容易出现拼写错误
- 编译过程时间较长,安装比二进制安装时间长
- 因为时编译安装,安装过程中一旦报错新手很难解决
RPM包
二进制包的优点:
- 包管理系统简单,只通过几个命令就可以实现包的安装、升级、查询和卸载
- 安装速度比源码包安装快的多
二进制包缺点:
- 经过编译,不再可以看到源代码
- 功能选择不如源码包灵活
- 依赖性
RPM命令管理
RPM包命名规则
http-2.2.15-15.el6.centos.1.i686.rpm
http 软件包名
2.2.15 软件版本
15 软件发布的次数
el6.centos 适合的Linux平台
i686 适合的硬件平台
rpm rpm包扩展名
RPM包依赖性
树形依赖:a->b->c
环形依赖:a->b->c->a
模块依赖:模块依赖查询网站:www.rpmfind.net
包全名与包名
包全名:操作的包时没有安装的软件包时,使用包全名。而且要注意路径(对应操作:安装、升级)
包名:操作已经安装的软件包时,使用包名,是搜索/var/lib/rpm中的数据库(对应操作:查询、卸载)
RPM 安装
rpm -ivh 包全名
选项:
-i (install) 安装
-v (verbose) 显示详细信息
-h(hash) 显示进度
--nodeps 不检测依赖性
RPM升级
rpm -Uvh 包全名
选项:
-U(upgrade) 升级
RPM卸载
rpm -e 包名
选项:
-e(erase) 卸载
--nodeps 不检查依赖性
RPM查询
rpm -q 包名
选项:
-q(query) 查询
-a(all) 所有
-i(information) 查询软件信息
-p(package) 查询未安装包信息(跟包全名)
-l(list) 列表
-f (file) 查询系统文件属于那个软件包
-R (requires) 查询包的依赖性
-
查询包是否安装:
rpm -q curl
-
查询已安装的rpm包:
rpm -qa curl
-
查询软件包的详细信息:
rpm -qi curl
-
查询包中文件的安装位置:
rpm -ql curl
-
根据配置文件查询包名(必须时安装时创建的文件,自己创的文件或者系统生成的临时文件不能查询)
[root@MiWiFi-R4CM-srv mnt]# rpm -qf /usr/share/doc/curl-7.29.0
curl-7.29.0-57.el7_8.1.x86_64 -
查询软件包的依赖性
[root@