rpm 详解

 rpm 包详解

程序包的命名格式:name-VERSION.tar.gz

拆包:主包和分包

主包:name-VERSION-release.arch.rpm

支包:name-function-VERSION-release.arch.rpm

 

注意:程序包之间有时会存在依赖关系,依靠前端工具解决依赖关系

yum

Rhel系列系统上的rpm包管理工具

apt-get

debian/ubuntu包管理前端工具

zipper

suserpm包管理工具

dnf

Fedora 22+系统上的rpm包管理前端工具

 

程序包管理器:位置/var/lib/rpm/

 

 

rpm命令:rpm[OPTION]+PACKETFILE

*安装:-i/–install

*升级:-U/–update,

         -F/–freshen

*卸载:-e/–erase

*查询:-q/–query

*校验:-V/–verify

*数据库维护:–builddb,–initdb

 

 

rpm安装

rpm
{-i|–install} [install-options] PACKAGE_FILE …

rpm -ivh +PACKETFILE

-ivh:i是安装;v是显示详细信息(vv)更详细的输出;h输出进度条,每个#表示2%进度

       –test:测试安装,检查并报告依赖关系及冲突消息等

       –nodeps:忽略依赖关系;(不建议)

       –replacepkgs:重新安装

注意:rpm包可以自带脚本

perinstall

安装过程开始之前运行的脚本

%pre

postinstall

安装过程完成之后运行的脚本

%post

preuninstall

卸载过程真正开始执行之前运行的脚本

%pre

postuninstall

卸载过程完成之后运行的脚本

%postun

 

 

rpm升级:

rpm {-U|–upgrade} [install-options]
PACKAGE_FILE …

rpm {-F|–freshen} [install-options]
PACKAGE_FILE …

-U存在旧包,想删除旧包安装新包就用-Uvh

-F在旧包的基础上升级,就用-Fvh

 

rpm降级:–oldpackage

 

注意:1、不要对内核做升级,Linux支持多内核版本并存,因此,直接安装新版本内核

         2、如果某原程序包的配置文件安装后曾被修改过,升级时,新版本的程序提供的同一个配置文件不会覆盖原有版本的配置文件,而是把新版本的配置文件重命名(FILENAME.rpmnew)后提供

 

 

rpm卸载

rpm -e  PACKGE_NAME..

       –allmatches 卸载所有匹配指定名称的程序包的各种版本

       –nodeps 忽略依赖关系

       –test 测试卸载

 

 

rpm查询

rpm +OPTION +PACKGE_NAME

       -qa 查询所有安装的包

       -qf 查询所有已经安装过的包

       -qp 用于实现对未安装程序包的查询

       -ql  查询程序安装生成的多有文件列表

       -qi 查询软件包的详细信息

       -qc 查询指定的程序包提供的配置文件

       -qd 查询指定的程序包提供的文档

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

       -qR 查询指定的程序包的依赖关系

 

 

rpm校验

rpm
-V +PACKAGE_NAME

       如未导入则导入公钥:rpm –import  /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-(6/7)

 

 

数据库的重建

rpm {–initdb|–rebuilddb}
[–dbpath DIRECTORY] [–root DIRECTORY]

       –initdb:初始化数据库,当前无任何数据库可实始化创建一个新的;当前有时不执行任何操作;

       –rebuilddb:重新构建,通过读取当前系统上所有已经安装过的程序包进行重新创建;

rpm 详解rpm 详解

 rpm 详解

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

(0)
N27_flypigN27_flypig
上一篇 2017-08-17 18:28
下一篇 2017-08-19

相关推荐

  • python分支循环和列表

    if语句 if condition: 代码块 condition必须是一个bool类型,这个地方有一个隐式转换bool(condition) if 1<2: print(‘1 less than 2’)   循环——while语句 while condition: block 当条件满足即condition为True,…

    2018-03-27
  • bash脚本进阶(续)

     1、打印99乘法表 [root@ _212_ ~/bin/for_script]# cat 99_changfa.sh  #!/bin/bash line=1 for i in `seq 1 9`;     …

    Linux干货 2016-08-21
  • Linux基础 & bash基础特性

    Q1:描述计算机的组成及其功能。 计算机的组成:运算器、控制器、存储设备、输入设备、输出设备。 运算器: 运算器是计算机中执行各种算术和逻辑运算操作的部件。运算器的基本操作包括加、减、乘、除四则运算,与、或、非、异或等逻辑操作,以及移位、比较和传送等操作,亦称算术逻辑部件。 存储设备: 计算机总是需要记录与读取数据的,而这些数据当然不可能每次都由用户经过键盘…

    Linux干货 2016-10-30
  • sed使用小结

    sed使用小结 Stream EDitor  行编辑器       sed是一种流编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”( pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,…

    Linux干货 2016-08-12
  • bash脚本循环语句用法练习

    bash脚本循环语句用法练习 1、使用循环语句写一个脚本,实现打印出来国际象棋的棋盘 #方法1:使用until循环语句实现 [root@liang7 bin]# cat chess-until.sh  #!/bin/bash #Author:liang #Version:1.0 #Description:Print&n…

    Linux干货 2016-08-24
  • LVM2 ( Blog4 )

    LV基本应用,扩展及缩减实现

    Linux干货 2017-11-27