Linux 软件包介绍---->RPM包管理

来源:互联网 发布:1394mac 编辑:程序博客网 时间:2024/04/30 05:57


软件包分类:

源码包:

脚本安装包

二进制包:

rpm包 ,默认系统包


源码包优点:

开源,如果有足够能力,可以修改源代码

可以自由选择所需的功能

软件是编译安装,所以更加适合自己的系统,更加稳定效率更高

卸载方便



源码包缺点:

安装过程步骤较多,尤其安装较大的软件集合时(如LAMP环境建),容易出现拼写错误

编译过程时间较长,安装比二进制安装时间长

因为是编译安装,安装过程中一旦出现错误很难解决



RPM包优点:

包管理系统简单,只通过几个命令就可以实现包的安装,升级,卸载和查询        

安装速度比源码包快得多



RPM包缺点:

经过编译不能再看源代码

  功能选择不如源码包灵活

   依赖性繁琐



RPM包命名规则:

httpd-2.2.15-15.e16.centos.1.i686.rpm

httpd            软件包名

2.2.15         软件版本

15                软件发布次数

e16.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                不检测依赖性

案例:

首先设置

然后挂载  

输入安装命令   发现有依赖  先安装依赖   才能正常安装httpd   很是麻烦   后面用yum在线管理进行安装,就不用这鸟东西了





RPM升级

rpm -Uvh 包全名

-U(upgrade)  升级






RPM卸载

rpm  -e   包名

-e (erase) 卸载

--nodeps    不检查依赖性


案例:  (由于我前面没安装全 所以显示未安装  有耐心的按照依赖安装  在删除,在这不弄 蛮麻烦死了





RPM查询:

rpm -q 包名

-q  查询

        rpm  -qa ----->查询所有已经安装的包名

     -a    all  所有


查询包的相关信息

rpm  -qi  包名

-i    查询软件信息(information)

-p   查询未安装包信息(package)



查询包中文件安装位置

rpm -ql 包名

-l    列表

-p   查询未安装包的信息里


案例:(虽然这个包没有安装,但是它列出了打算安装在哪里)


查询系统文件属于哪个rpm包

rpm -qf  系统文件名

-f   查询系统文件属于哪个软件包

案例:


RPM包依赖性

查询软件包的依赖性:

rpm -qR 包名

-R   查询软件包的依赖性

-p    查询未安装包信息


案例:查询未安装包的依赖性

RPM包文件校验

rpm -V 已安装的包名

-V 校验指定RPM包中的文件

如果结果没有任何显示说明是没有修改过的

如果修改过  会显示修改的文件

对应的验证信息


RPM包中文件的提取

rpm2cpio  包全名| \

cpio -idv .         文件绝对路径

选项:-i   copy-in 模式,还原

    -d   还原时自动新建目录

      -v  显示还原过程

例子:cpio 选项< 【文件|设备】

rpm2cpio    将rpm包转换为cpio格式的命令

cpio  是一个标准工具,同用于创建软件档案文件和从档案文件中提取文件

案例:(基本上用于   误删除系统文件,不用重新装系统)


原创粉丝点击