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

相关推荐

  • Linux基础 文件系统目录标准FHS

    概述 本文前半部分介绍了 Linux 文件系统目录标准 FHS (Filesystem Hierarchy Standard)。后半部分整理了个人学习 Linux 过程中涉及到的部分文件和路径,激励自己坚持更新,以期完善。 背景 由于Linux是遵循开源协议,任何人都可以根据Linux的核心代码制作和发行版本。如果每个人都按自己的喜好,在/目录下创建目录、存…

    Linux干货 2016-08-07
  • Week2–Linux基础三

    一. Linux上的文件管理类命令都有哪些,其常用的使用方法和例子是啥呢? 文件管理类命令大概就是这些: ls, cd, pwd, mkdir, rmdir, cp, rm, mv, touch, cat, more, less, head, tail, file, grep. 目录或文件操作类: 1. ls: (查看文件名命令) -a :全部的文件,连同隐…

    Linux干货 2016-12-12
  • Ansible Conditionals & Loops

     一、条件语句     条件判断语句,就是根据某些变量的值来控制Ansible的执行流程。控制某些主机执行某些操作与不执行某些操作。根据某些操作结果,判断是否执行其它操作等等。     Ansible的条件判断语句只有 when 语句,结合变量使用才能显示出它的价值。when的用…

    Linux干货 2015-11-21
  • linux发行版介绍及其哲学思想

    Linux是一种自由和开源的unix-like操作系统。目前运用领域最广泛、使用人数最多的操作系统。该操作系统的内核是Linus Torvalds在1991年10月5日首次发布。是一个多任务,多用户的操作系统,广泛应用在服务器,手机,平板电脑,电视,电子游戏等领域,我们生活中随处都可以见到linux身影。 Linux诞生 1991 年,在芬兰,赫尔辛基大学的…

    2017-09-16
  • Linux的文件系统和目录

    Linux的文件系统和目录 Linux目录和Windows目录有着很大的不同,Linux目录类似一个树,最顶层是其根目录,如下图: 文件系统和目录:   详细用法如下 / bin     存放用户使用的基本命令(可执行程序,二进制文件),它是不能单独分区的 boot    跟内核…

    2017-03-26
  • shell四剑客之sed

    概述 Stream EDitor, 行编辑器 sed是一种流编辑器,它一次处理一行内容。处理时,把 当前处理的行存储在临时缓冲区中,称为“模式空间”( pattern space),接着用sed命令处理缓冲区中的内容 ,处理完成后,把缓冲区的内容送往屏幕。接着处理下一 行,这样不断重复,直到文件末尾。文件内容并没有改变 ,除非你使用重定向存储输出。Sed主要…

    Linux干货 2016-08-15