zoukankan      html  css  js  c++  java
  • Linux程序包管理之rpm

    第十五章、Linux程序包管理之rpm

    目录

    • 程序包管理器的基本功能
    • 如何获取程序包
    • rpm命令的使用

    rpm全称为redhat package manager,是Redhat公司的包管理工具;软件包以.rpm为后缀结尾;

    15.1、程序包管理器的基本功能

    讲编译好的应用程序的各组成文件打包成一个或多个程序包文件,从而更方便实现程序包的安装、升级、卸载、查询、等操作;

    15.2、如何获取程序包

    1、系统发行版的光盘或官方的文件服务器;例如:http://mirrors.aliyun.com
    2、项目的官方站点
    3、第三方组织
    	(a)EPEL
    	(b)搜索引擎
    		http://pkgs.org
    		http://rpmfind.net
    		http://rpm.pbone.net
    4、自己动手,制作rpm包
    

    15.3、rpm命令

    使用格式

    rpm [OPTION] [PACKAGE_FILE]
    	安装:-i 
    	升级:-U,-F
    	卸载:-e
    	查询:-q
    	校验:-V
    	数据库维护:--builddb, --initdb	
    

    15.3.1、安装

    使用格式

    rpm -ivh PACKAGE_FILE
    

    常用选项

    -v:详细信息
    -h:显示进度条,由50个#号组成,每个#表示%2进度
    --test:测试安装,检查并报告依赖关系及冲突消息;
    --nodeps:忽略依赖关系;
    --repacepkgs:重新安装;
    

    示例

    [root@www Packages]# rpm -ivh tree-1.6.0-10.el7.x86_64.rpm
    准备中...                          ################################# [100%]
    正在升级/安装...
       1:tree-1.6.0-10.el7                ################################# [100%]
    # 重新安装
    [root@www Packages]# rpm -ivh --replacepkgs tree-1.6.0-10.el7.x86_64.rpm
    准备中...                          ################################# [100%]
    正在升级/安装...
       1:tree-1.6.0-10.el7                ################################# [100%]
    # 测试安装
    [root@www Packages]# rpm -ivh --test php-5.4.16-36.el7_1.x86_64.rpm
    错误:依赖检测失败:
    	httpd-mmn = 20120211x8664 被 php-5.4.16-36.el7_1.x86_64 需要
    	php-common(x86-64) = 5.4.16-36.el7_1 被 php-5.4.16-36.el7_1.x86_64 需要
    	php-cli(x86-64) = 5.4.16-36.el7_1 被 php-5.4.16-36.el7_1.x86_64 需要
    	httpd 被 php-5.4.16-36.el7_1.x86_64 需要
    # 忽略依赖关系安装
    [root@www Packages]# rpm -ivh --nodeps php-5.4.16-36.el7_1.x86_64.rpm
    准备中...                          ################################# [100%]
    正在升级/安装...
       1:php-5.4.16-36.el7_1              ################################# [100%]
    

    15.3.2、升级

    使用格式

    rpm -Uvh PACKAGE_FILE
    rpm -Fvh PACKAGE_FILE
    

    常用选项

    -U:升级或安装,如果程序已经安装则升级,如果未安装则安装程序包;
    -F:升级
    --oldpackage:降级
    --force:强制升级
    

    注意:

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

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

    15.3.3、卸载

    使用格式

    rpm -e PACKAGE_FILE
    

    常用选项

    --nodeps:卸载时忽略依赖关系;
    --test:测试卸载,但不真正执行;
    

    示例

    [root@www Packages]# rpm -q php
    php-5.4.16-36.el7_1.x86_64
    [root@www Packages]# rpm -e php
    [root@www Packages]# rpm -q php
    未安装软件包 php
    

    15.3.4、查询

    使用格式

    rpm {-q|--query} [select-options] [query-options]
    

    常用选项

    [select-options]

    PACKAGE_NAME:查询指定的程序包是否已经安装,及其版本;
    -a:查询所有已安装上的包;
    -f FILE:查询指定的文件由哪个程序包安装生成;
    -p PACKAGE_FILE:用于实现对未安装的程序包执行查询操作;
    --whatprovides CAPABILITY:查询指定的CAPABILITY由那个程序包提供;
    --whatrequires CAPABILITY:查询指定的CAPABILITY被哪个包所依赖;
    

    [query-options]

    --changelog:查询rpm包的chagelog,每次rpm包升级都做了哪些改动;
    -l:程序包安装生成的所有文件列表;
    -i:程序包相关的信息,版本号,大小,所属的包组等;
    -c:查询指定的程序包提供的配置文件;
    -d:查询指定的程序包提供的帮助文档;
    --provides:列出指定的程序包提供的所有CAPABILITY;
    -R:查询指定的程序包的依赖关系;
    --scripts:查询程序包自带的脚本片段;
    

    常用方法组合

    rpm -qi PACKAGE_FILE
    rpm -ql PACKAGE_FILE
    rpm -qc PACKAGE_FILE
    rpm -qd PACKAGE_FILE
    rpm -qpl PACKAGE_FILE
    rpm -qpi PACKAGE_FILE
    rpm -qpc PACKAGE_FILE
    

    15.3.5、校验

    使用格式

    rpm -V PACKAGE_NAME
    

    15.3.6、包来源合法性验证

    导入信任的包制作者的密钥

    对于centos发行版来说使用

    [root@www ~]# rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
    

    验证

    1、安装此组织签名的程序时会自动验证;

    2、手动验证:rpm -K PACKAGE_FILE

    15.3.7、数据库重建

    rpm管理器数据库路径:/var/lib/rpm

    获取帮助

    centos6: man rpm
    centos7: man rpmdb
    

    使用格式

    rpm {--initdb | --builddb}
    --initdb:初始化数据库,当前无任何数据库可初始化创建一个新的,当前有时不执行任何操作;
    --rebuilddb:重新构建,通过读取;
    
  • 相关阅读:
    C# 学习之旅(1)
    SqlServer安装教程
    Aop和Filter区别
    Redis入门
    SpringMVC与Struts2的主要区别
    SpringMVC执行流程
    ssm初始化环境搭建
    Oracle 高效分页
    Oracle 综合:游标和动态SQL
    Oracle 动态SQL
  • 原文地址:https://www.cnblogs.com/wangenzhi/p/6234852.html
Copyright © 2011-2022 走看看