在Linux下,对软件包的管理有三种方式源代码方式,rpm和yum方式,yum是rpm的前端管理工具。
对于普通用户来讲用源码方式是比较痛苦的。源码方式一般分为以下三个步骤。
第一步 ./configure 检查编译环境,生成makefile。第二步make 把源代码编译成二进制文件。第三步make install 安装编译好的文件。因为这种方式对普通用户来讲难于上手,所以就有了代替源码安装的软件管理工具,rpm就是其中一个。
一、RPM简介:
RPM程序包管理器,rpm(redhat Package Manager)
RPM命名规范:
vclownv-3.3.3-3.el6.x86_64.rpm
vclownv是软件名;3.3.3-3是软件版本号;el6是现在系统的版本号;x86_64就是64位系统。
RPM的特点:
1、rpm包与包之间存在复杂的依赖关系,简单说就是如果你需要安装E包必须先安装R包,为了解决这种依赖关系就有了rpm前端管理工具yum。
2、rpm包为了按需所取把不同的功能分成不同的包,用户可以根据自己的实际需要下载。
3、在/var/lib/rpm下存放着rpm的数据库
如果要查询一个rpm包是否已安装,是通过这里来查询的。这里存放着已安装的包名,各包之间的存在的依赖关系,包的名称和版本等。
二、程序包下载途径
1、系统发行光盘与镜像站点
http://mirrors.aliyun.com
http://mirrors.sohu.com
http://mirrors.163.com
2、epel(第三方组织)
3、rpm包搜索引擎
1、 http://rpmfind.net (在方框中输入需要的包名)
二、RPM的基础命令
安装、升级、卸载、查询和校验、数据库维护
rpm命令格式:rpm 选项(注意:每个选项还有子命令) 包名
常用参数:
-i 安装
-U升级
-e卸载
-q查询
-V校验
--builddb --initdb
安装 -i
子命令:
-v:verbose,详细信息
-vv:更详细的输出
-h:hash marks输出进度条;每个#表示2%的进度;
--test:测试安装,检查并报告依赖关系及冲突消息等;
--nodeps:忽略依赖关系;不建议;
--replacepkgs:重新安装
--noscripts 安装或卸载时不运行rpm包自带的以下四种脚本。
preinstall:安装过程开始之前运行的脚本,%pre , --nopre
postinstall:安装过程完成之后运行的脚本,%post , --nopost
preuninstall:卸载过程真正开始执行之前运行的脚本,%preun, --nopreun
postuninstall:卸载过程完成之后运行的脚本,%postun , --nopostun
--nopre 不运行安装过程之前要运行的脚本。
--nopost 不运行安装过程完成之后要运行的脚本。
--nopreun 不运行卸载过程开始之前要运行的脚本。
--nopostun 不运行卸载过程完成之后要运行的脚本。
安装软件包最常用的rpm -ivh
2、升级 -F
-h (or --hash) 安装时输出hash记号 (``#'')
--oldpackage 允许"升级"到一个老版本
--test 只进行升级测试
--excludedocs 不安装软件包中的文档文件
--includedocs 安装文档
--replacepkgs 强制重新安装已经安装的软件包
--replacefiles 替换属于其它软件包的文件
--force 忽略软件包及文件的冲突
--percent 以百分比的形式输出安装的进度。
--noscripts 不运行预安装和后安装脚本
--prefix 将软件包安装到由 指定的路径下
--ignorearch 不校验软件包的结构
--ignoreos 不检查软件包运行的操作系统
--nodeps 不检查依赖性关系
-U:升级或安装
-F:升级
rpm -Uvh
rpm -Fvh
3、卸载 -e
--allmatches:卸载所有匹配指定名称的程序包的各版本;
--nodeps:忽略依赖关系
--test:测试卸载,dry run模式
rpm -e zsh
rpm -ql zsh
4、查询 -q
子命令:
-a, --all:查询所有已经安装过的包
-f FILE:查询指定的文件由哪个程序包安装生成
-p, --package PACKAGE_FILE:用于实现对未安装的程序包执行查询操作
--whatprovides CAPABILITY:查询指定的CAPABILITY由哪个程序包提供
--whatrequires CAPABILITY:查询指定的CAPABILITY被哪个包所依赖
--changelog:查询rpm包的changlog
-l, --list:程序安装生成的所有文件列表
-i, --info:程序包相关的信息,版本号、大小、所属的包组,等
-c, --configfiles:查询指定的程序包提供的配置文件
-d, --docfiles:查询指定的程序包提供的文档
--provides:列出指定的程序包提供的所有的CAPABILITY
-R, --requires:查询指定的程序包的依赖关系
--scripts:查看程序包自带的脚本片断
查看程序包的详细内容
查看包的文档信息
查看包依赖的关系
查询指定的功能由哪个程序包提供
查询指定的功能被哪个包所依赖
5、校验
校验已安装的软件包-V
-p Verify against package file
-f 校验所属的软件包
-a Verify 校验所有的软件包
-g 校验所有属于组 的软件包
--noscripts 不运行校验脚本
--nodeps 不校验依赖性
--nofiles 不校验文件属性
校验软件包中的文件 -K
-v 显示附加信息
-vv 显示调试信息
6、rpm数据库在/var/lib/rpm
--rebuilddb 重建RPM资料库
--initdb 创建一个新的RPM资料库
[--dbpath DIRECTORY] :指明建立位置
小弟不才。