rpm包管理

linux程序包管理

RPM ==================================================================

#ldd 查看二进制程序调用的动态链接库

#ldconfig  -p  显示本机已缓存的所有可用库文件

    dll: Dynamic link library

    so : Shared Object

    API: Application Program Interface 应用编程接口

    ABI: Application Binary INterface 应用二进制接口

    Unix-like   ELF

    C/C++程序格式:

    源代码:文本格式的程序代码

        编译开发环境:编译器,头文件,开发库

    二进制格式:文本格式的程序代码-编译器-二进制格式(二进制程序,库文件,配置文件)

    java/pathon程序格式:

    源代码:编异成能够在其虚拟机(jvm/pvm)运行的格式

        开发环境:编译器,开发库

    项目构建工具:

    c/c++:make

    java:maven

  程序包管理器:

源代码 – 目标二进制格式 – 组织成几个包文件;完成安装、升级、查询、卸载、效验等操作

     debian:dpt,dpkg  ".deb"

     redhat:rpm        ".rpm"

     S.u.S.E:rpm   ".rpm"

          rpm:Redhat Package Manage

            RPM Package Manage

  rpm包命名格式:


     name-VERSION-rpmrelease.arch.gz archetecture 架构

     VERSION:major.minor.release

    

     yum-3.2.29-73.el6.centos.noarch.rpm

     yum-3.2.29版本 73次修改 Redhat Enterprise 6

  changelog

  拆包:选择完整程序包中需要的功能

  前端工具:自动解决依赖关系

     yum: rhel

     apt-get(apt-cache): deb

     zypper: suse

     dnf: fedora 22+

 程序包管理器:

    功能:将编译好的应用程序的各组成文件打包成一个或几个程序包文件,

    从而方便的实现程序包的安装,卸载,升级等操作

      debian:dpt,dpkg   ".deb"

     redhat:rpm       ".rpm"

     S.u.S.E:rpm      ".rpm"

    /var/lib/rpm/    rpm数据库

 获取程序包途径:

    1.系统发行版的光盘或官方的文件服务器(或镜像站点)

          mirrors.aliyun.com

          mirrors.sohu.com

          mirrors.163.com

     2.项目的官方站点

     3.第三方组织

          pkgs.org

          rpmfind.net

          rpm.pbone.net

     4.自己制作

 检查其合法性:

    来源合法性

    程序包完整性

#rpm [OPTIONS] [PACKAGE_FILE]

     -i 安装  –install

     rpm -ivh packagefile  -v 显示详细信息  -h  以#号表示进度

    

    

     -U 升级或安装  –update

     -F  仅可升级

         –oldpackage 降级

         –force 强制升级

    

     -e  卸载  –erase    rpm -e http(包名)

         –allmatchs 删除指定名称软件包所有版本

         –nodeps 忽略依赖关系

         –test 测试卸载

    

     -q  查询  –query

      [select-options]

     -a –all 查询所有已装包;可配合grep

]#rpm -qa | grep httpd

    -f FILE 查询指定文件由哪个软件包安装生成

]#rpm -qf /etc/named

     -p –package PACKAGE_FILE  对未安装的程序包执行查询 -qpc -qpl -qpi

          –whatprovides CAPABILITY  查询指定能力由哪个程序提供

          –whatrequires CAPABILITY  查询指定能力被哪个包依赖

    

      [query-options]

     –changelog 查询rpm包的changelog

     –provides 列出指定程序包提供的所有CAPABILITY

     -R –requires查询指定程序包的依赖关系(CAPABILITY)

     -l –list 列出程序安装生成的所有文件

     -qpl 查询未安装的程序包安装后会生成哪些文件

     -i –info 程序包相关信息

     -c –configfiles 查询指定程序提供的配置文件

     -d –docfiles 查询指定程序包提供的帮助文档

     –scripts 查看程序包自带的脚本

    

     -V  校验  –verify   可指定检查哪些

]#rpm -V bash
]#S.5....T

      S file Size differs

       M Mode differs (includes permissions and file type)

       5 digest (formerly MD5 sum) differs

       D Device major/minor number mismatch

       L readLink(2) path mismatch

       U User ownership differs

       G Group ownership differs

       T mTime differs

       P caPabilities differ

 通用选项:

     –nodeps  忽略依赖关系

     –replacepkgd 重新安装     删除某个配置文件后可重新安装

     –replacefiles  替换不同程序包中可能出现的相同的文件

     –test  测试安装  仅测试能否安装  不真正安装

     –nosignature 不检查包签名信息,不检查来源合法性

     –nodigest 不检查包完整性

数据库重建:     默认位置:/var/lib/rpm

     rpmdb

     –initdb 初始化数据库。当前无数据库可初始化创建新的数据库;如果存在则不作操作

     –rebuilddb 重新创建数据库

     –dbpath 指定创建数据库文件存放路径

    

     –builddb,initdb  数据库维护

  包来源和发行、完整性验证:

 包制作者:

     提取程序包的特征码

     使用自己的私钥对特征码加密(签名)

     将签名加入包放到互联网

 使用者:

    使用公钥验证包来源合法性、完整性

 验证:

    安装时自动验证

    手动验证:rpm -K PACHAGE-FILE

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

(0)
上一篇 2016-08-18 10:10
下一篇 2016-08-18 10:10

相关推荐

  • RPM与YUM命令异同详解

    RPM和YUM都是用来安装程序的工具,但是它们有太多相似的用法以至于有事很难分清应该哪个那就来一起详细的了解一下他们的功能及用法,以及他们的相同以及不同之处。 RPM 软件包管理器功能:安装,卸载,升级,查询,校验,打包,数据库管理RPM在安装时不能处理程序之间复杂的依赖关系RPM可以验证软件包来源的合法性、完整性。常用选项: -i:表示安装。(常用:-iv…

    2017-06-18
  • Linux基础目录名称命名法则及功用规定

    FHS:文件系统层级结构标准 – Filesystem Hieracry Standard 参考这篇文档: http://refspecs.linuxfoundation.org/FHS_2.3/fhs-2.3.html  /bin:供所有用户使用的基本命令文件 /sbin:系统管理使用的工具程序 /boot:引导加载器必须用的静态文件…

    Linux干货 2016-08-15
  • 小练习题。【第四周】

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其他用户均没有任何访问权限。 home]# chmod g-rwx,o-rwx -R tuser1 2、编辑/etc/group文件,添加组hadoop。 /]# vim /etc/group …

    Linux干货 2016-11-26
  • DNS详解

    概述     互联网访问绝大多数都是基于域名的访问,互联网访问的基础是基于IP来实现的,因此,需要有一种将域名解析成IP的机制,让用户在利用域名访问时,自动将域名转换成为对应的IP,这就是DNS的功能,本章将介绍一些DNS相关的内容,具体分为:     1、DNS的基础概念 &n…

    Linux干货 2016-10-08
  • Homework Week-4 grep用法

    1、复制/etc/skel目录为/home/tuser1,要求/home/tuser1及其内部文件的属组和其它用户均没有任何访问权限。 cp -r /etc/skel /home/tuser1 chmod  -R g=,o= /home/tuser1 2、编辑/etc/group文件,添加…

    Linux干货 2016-09-06
  • 软链接和硬链接的区别

    Linux链接概念 Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。 硬链接 硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种…

    Linux干货 2016-10-29