rpm软件包管理

软件包管理

软件运行环境

API   应用程序开发接口

ABI   二进制接口

Rpm包命名方式

Name-version-release-arch-rpm

例如

zziplib-devel-0.13.162-5.el7.i686.rpm

zziplib :主包名

dewel:次包名

0.13.162: 主版本号 次版本号  最小版本号

5rpm包编译完后的版本

el7系统版本号,代表centos7

i686硬件架构

有的软件包硬件架构位置会有noarch的字样,表示与硬件架构无关,可以运行在任何架构的机器上。

常见的arch有:x86  i386  i486   i586   i686  x6464  x64

互联网上的很多软件的发布,不一定是rpm的方式,都是以源代码的方式发布,源代码的方式发布会有各种后缀,但是一般都要tar打包,在打包的基础上压缩。

包的分类和拆包

Application-VERITION-ARCH.rpm  主包

Application-devel-VERITION-ARCH.rpm    开发子包

Application-tuils-VERITION-ARCH.rpm    工具子包

Application-libs-VERITION-ARCH.rpm    库包

库文件

查看二进制文件所依赖的库文件

Ldd  /PATH/TO/BINARY_FILE

例如:ldd  /bin/ls    ldd  /bin/bash

管理及查看本机装载的库文件:

    Ldconfig

/sbin/ldconfig  -p:显示本机已经缓存的所有可用库文件名及文件路径的映射关系。

配置文件:/etc/ld.so.conf    /etc/ld.so.conf.d/*.conf

缓存文件:/etc/ld.so.cache

RPM包管理

Centos系统上使用rpm命令管理程序包

作用

    安装  卸载  升级  查询  校验   数据库维护

rpm包的安装

    rpm    -i  /path/rpm    安装(要写具体路径)

           -v-vv          详细显示安装过程

           -h               以#显示安装进度

           -q               查询rpm包是否安装

           -ql               查询rpm包的安装位置

一般rpm  -ivh  一起使用

rpm  -ivh  – -test    测试安装,但不真正执行安装

           – -nodeps   忽略依赖关系

           – -repleasepkgs  覆盖安装rpm

           – -repleasefiles   覆盖安装rpm包中的单个文件。比如有两个包,其中个

                          别文件是一样的,就可以用此命令,只覆盖个别文件,而

                          不是整个rpm包。

           – -nodigest       不检查包的完整性

           – -nosignature     不检查包的合法来源

           – -noscipts        不执行程序包脚本片段

                   %per       先运行脚本再安装rpm程序包  –nopre    

                   %post      先安装rpm包再运行脚本      –nopost

                   %preun     先运行脚本后卸载rpm包      –nopreun

                   %postun     先卸载rpm包,再运行脚本   –nopostun

rpm包升级

rpm   -U    [install -option]

       如果安装有旧版本,则升级,没有安装旧版本则安装。

blob.png 

    注意:上图对于tree的安装,是在当前路径下安装的,所以没有写路径,如果不

           在当前路径下,要写rpm包的完整路径。

Rpm   -F    [install-option]

        如果安装有旧版本,则升级,没有安装旧版本则不执行任何操作。

            – -oldpackage    降级

            – -force         强行升级

包查询

    rpm    -e     卸载

           -a     所有包

        若包名记得不全,则可以rpm  -qa  |  grep “”模糊搜索

           -f     查看指定的文件由哪个安装包生成。

           -p  rpmfile(完整路径)  针对尚未安装的程序波文件做查询操作。

           – -changelog     查询rpm的更改日志

 Rpm   -q  [option]  配合q使用  

            – -changelog   查询rpm包的更改日志

            -c  查询程序的配置文件

blob.png 

 

 

               -d      查询程序的文档

 

 blob.png

                – i      rpm包的信息

blob.png 

                 -l       查看指定程序包安装后生成的所有文档

                 – -scripts  查看程序包自带的程序片段

 blob.png

                  -R     查看程序包的依赖关系

blob.png 

                  – -provides     列出指定程序包所指定的程序和功能

blob.png 

导入所需的公钥

Rpm    -K   rpmfile       检查包的完整性

例如

blob.png 

    运行后有报错信息,这不是因为该包不完整,是因为系统现在没有检测能力。需要

导入公钥文件才能用。

    导入  – -import  /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

                 blob.png

    再次执行-K命令就不会报错了。

rpm  -qa gpg-pubkey*      下图显示的结果就是导入的密钥文件

blob.png 

RPM数据库

数据库重建

    /var/lib/rpm

    安装或卸载一个包,该数据库都会更新,该文件被破坏后,会造成rpm无法查询

Rpm包的信息。

    Rpm  – -initdb   初始化

如果事先不存在数据库,则新建,否则不执行任何操作,

    Rpm  – -rebuilddb   重建

无论当前存在与否,直接重新创建数据库。

 

原创文章,作者:zzd,如若转载,请注明出处:http://www.178linux.com/39357

(1)
zzdzzd
上一篇 2016-08-24 10:12
下一篇 2016-08-24 10:12

相关推荐

  • 系统无法正常启动的解决之道

    先来看下配置文件的格式: [root@centos6 ~]# uname -r 2.6.32-642.el6.x86_64 [root@centos6 ~]# cat /boot/grub/grub.conf  # Note that you do&…

    Linux干货 2016-09-19
  • shell之变量总结

    1 什么是shell变量 按照定义来说,变量是存储设备中的一些可读写的存储单元.变量可以定制用户本身的工作环境。使用变量可以保存有用信息,使系统获知用户相关设置。变量也用 于保存暂时信息。例如:一变量为EDITOR,系统中有许多编辑工具,但哪一个适用于系统呢?将此编辑器名称赋给EDITOR,这样,在使用cron或其 他需要编辑器的应用时,这就是你将一直使用的…

    Linux干货 2016-08-15
  • NoSQL之MongoDB

    分布式系统理论 1、 CAP: 分布式系统只能满足其中两个  Consistency :一致性 Availibility:可用性 Partitions Tolerance :分区容错性 C,A : SQL 传统的数据库。 两段机制。 C,P :悲观枷锁机制,分布式加锁机制。加锁机制与SQL不太一样。 这里的C为最终一致性。 放弃C后的特例,既可以保证可用性,…

    2018-01-09
  • 重定向

    Linux下定义了三种I/O设备: 标准输入(STDIN):用0表示,默认的标准输入设备是键盘; 标准输出(STDOUT):用1表示,默认的标准输出设备是当前终端; 标准错误(STDERR):用2表示,默认的标准错误输出设备是当前终端; I/O重定向即改变默认的位置 1 标准输出重定向 (1)将标准输出重定向到其他终端 /dev/pts/1代表伪终端1,在伪…

    Linux干货 2017-07-31
  • python文件操作

    文件操作使用的函数open 打开read 读write 写close 关其他非常用的 seek 设置读取指针 tell 读取读取指针位置 windows中def encode(self, encoding=’utf-8′, errors=’strict’)open 和它的参数open(file,mode=&#8…

    Linux干货 2017-10-31
  • 在vsftp中实现基于pam_mysql的虚拟用户机制

    FTP简介 在介绍vsftp相关内容前,简单描述下FTP。FTP全称File Transfer Protocol,文件传输协议。它是一个C/S架构的协议,在Linux中其服务端实现主要有vsftpd,pureftpd,proftpd,Filezilla,本文主要介绍的是vsftp。客户端实现主要是ftp和lftp两种工具。其工作方式:主要分为两个层面的连接:…

    Linux干货 2017-01-07