软件包管理

rpm

包和包管理器

  • 包的组成:
      二进制文件、库文件、配置文件、帮助文件
  • 程序包管理器:
      debian: deb文件,dpkg包管理器
      redhat:rpm文件,rpm包管理器
      rpm:Redhat Package Manager
         RPM Package Manager

rpm包管理

  • CentOS系统上使用rpm命令管理程序包: 安装、卸载、升级、查询、校验、数据库维护

安装:
rpm {-i|--install} [install-options] PACKAGE_FILE…
  -v: 显示安装过程信息
  -vv:显示更详细的安装信息
  -h: 以#显示程序包管理执行进度


rpm包安装

[安装选项]
  --test: 测试安装,但不真正执行安装,即dry run模式
  --nodeps:忽略依赖关系
  --replacepkgs | replacefiles
  (覆盖安装 | 只覆盖有冲突的文件)
  --nosignature: 不检查来源合法性
  --nodigest:不检查包完整性
  --noscripts:不执行程序包脚本


rpm包升级

rpm {-U|--upgrade} [install-options] PACKAGE_FILE...
rpm {-F|--freshen} [install-options] PACKAGE_FILE...
  upgrade:安装有旧版程序包,则“升级”
      如果不存在旧版程序包,则“安装”
  freshen:安装有旧版程序包,则“升级”
      如果不存在旧版程序包,则不执行升级操作
  rpm -Uvh PACKAGE_FILE ...
  rpm -Fvh PACKAGE_FILE ...
  --oldpackage:降级
  --force: 强制安装


包查询

  • rpm {-q|--查询} [选择-选项] [查询-选项]
  • [选择-选项]
     -a:列出所有包
       rpm -qa |grep dst 模糊搜索已安装的带有dst的包的包名
     -f:查看指定的文件由哪个程序包安装生成
     rpm -qf /usr/bin/tree 查看tree文件来自于哪个rpm包
     -p rpmfile:针对尚未安装的程序包文件做查询操作(后面跟文件名,而不是包名)
     --whatprovides CAPABILITY:查询指定的CAPABILITY由哪个包所提供
     --whatrequires CAPABILITY:查询指定的CAPABILITY被哪个包所依赖
      (例子:rpm -q --whatrequires bash 查看依赖bash能力的rpm包,卸载bash之后依赖bash的rpm包无法使用)
  • [选择-选项]  --changelog:查询rpm包的更新日志
     -c:查询程序的配置文件
     -d:查询程序的文档
     -i:信息  -l:查看指定的程序包安装后生成的所有文件
     --脚本:程序包自带的脚本
     --provides:列出指定程序包所提供的 CAPABILITY
     -R:查询指定的程序包所依赖的CAPABILITY
  • 常用查询方法
     -qi
     -qpi
     -qa
  • 包卸载
    rpm {-e|--erase} [--allmatches] [--nodeps] [--noscripts] [--notriggers] [--test] PACKAGE_NAME

rpm数据库:记录安装的所有rpm包,以及包中包括的所有文件列表的源数据

  • 数据库重建
     /var/lib/rpm
  • rpm {--initdb|--rebuilddb}
     initdb: 初始化
      如果事先不存在数据库,则新建之
      否则,不执行任何操作
     rebuilddb:重建已安装的包头的数据库索引目录

yum

基本用法:

1、安装rpm包:
yum install RPM包

2、删除rpm包,包括与该包有依赖性的包:
yum remove 包名

3、检查可更新的rpm包:
yum check-update

4、更新所有的rpm包:
yum update

5、更新指定的rpm包:
yum update 包名

6、大规模的升级版本:
yum upgrade

7、列出资源库中所有可以安装或更新的rpm包的信息: yum info

8、列出资源库中特定的可以安装或更新以及已经安装的rpm包的信息:
yum info 包名

9、列出资源库中所有可以更新的rpm包的信息:
yum info updates

10、列出已经安装的所有的rpm包的信息:
yum info installed

11、列出已经安装的但是不包含在资源库中的rpm包信息:

yum info 包名

12、列出资源库中所有可以更新的rpm包:
yum list updates

13、列出已经安装的所有rpm包:
yum list installed

14、列出已经安装的但不包含在资源库中的rpm包:
yum list extras

15、列出资源库中所有可以安装或更新的rpm包:
yum list

16、列出资源库中特定的可以安装或更新以及已经安装的rpm包:
yum list 包名

17、搜索匹配特定字符的rpm包的详细信息:
yum search 包名

18、搜索包含特定文件名的rpm包:
yum provides 包名

19、清除暂存的rpm包文件:
yum clean packages

20、清除暂存的rpm头文件:
yum clean headers

21、清除暂存中旧的rpm旧文件:
yum clean oldheaders

22、清除暂存中旧的rpm头文件和包文件:
yum clean或yum clean all

linux基础—课堂随笔06_软件包管理的更多相关文章

  1. linux基础—课堂随笔010_系统启动和内核管理

    系统启动和内核管理 Linux: kernel+rootfs kernel: 进程管理.内存管理.网络管理.驱动程序.文件系统.安全功能 rootfs:程序和glibc 库:函数集合, functio ...

  2. linux基础—课堂随笔08_进程(转)

    进程优先级 命令 pstree -p 显示各个子线程 ps 进程状态(process state) UNIX风格:ps -ef BSD风格:ps aux 还有用到o参数,选项显示定制的信息: pid. ...

  3. linux基础—课堂随笔07_磁盘存储和文件系统

    磁盘管理 管理分区 列出块设备  lsblk parted命令 高级分区操作 用法:  parted [选项]... [设备 [命令 [参数]...]...]  parted /dev/sdb mkl ...

  4. linux基础—课堂随笔05_文本三剑客之SED

    1.简介 sed是非交互式的编辑器,它不会修改文件,除非使用shell重定向来保存结果.默认情况下,所有的输出行都被打印到屏幕上. sed编辑器逐行处理文件(或输入),并将结果发送到屏幕.具体过程如下 ...

  5. linux基础—课堂随笔_03 SHELL脚本编程基础

    shell脚本编程基础 条件选择:if语句 选择执行: 注意:if语句可嵌套 单分支 if(开头)判断条件:then条件为真的分支代码 fi(结尾) 双分支 if(开头)判断条件:then条件为真的分 ...

  6. linux基础—课堂随笔09_数组

    数组:(6.14 第一节) 取分区利用率,大于百分之八十则发出警报 取分区第一列 取分区使用率: 脚本: 检查脚本语法: ——end 数组切片: 1.跳过前两个取后面 2.跳过前两个取三个 生成10个 ...

  7. linux基础—课堂随笔04_文件查找和压缩

    文件查找和压缩 文件查找 1.locate   这个命令是对其生成的数据库进行遍历(生成数据库的命令:updatedb),这一特性决定了用locate查找文件速度很快,但是locate命令只能对文件进 ...

  8. Linux 基础教程 35-软件包管理-YUM

    YUM基础     使用RPM在Linux中安装.卸载软件或服务进会经常碰到RPM包的依赖,而我们在安装软件A时,提示依赖于软件B,安装软件B时又会出现提示依赖于软件C等一系列的依赖关系.这时大家会提 ...

  9. Linux 基础教程 34-软件包管理-RPM

        对于Linux而言管理各类软件,如安装.卸载和升级等是常有的事情和必备的技能.以CentOS为例,常用的安装包命令有rpm和yum. RPM基础     RPM(RedHat Package ...

随机推荐

  1. Linux学习—mysql安装配置及远程连接

    安装前准备 1.检查是否已经安装过mysql 执行命令 [root@localhost /]# rpm -qa | grep mysql  从执行结果,可以看出我们已经安装了mysql-libs-5. ...

  2. appium的第一个实例

    # !/usr/bin/env python # -*- coding:utf-8 -*- from appium import webdriver import time import unitte ...

  3. V8的垃圾回收和内存限制

    V8的垃圾回收和内存限制 前言 在第三次浏览器大战中,来自Google的Chrome浏览器凭借优异的性能成为聚光灯下的焦点.而Chrome的成功离不开站在其背后的JavaScript引擎V8. 随着V ...

  4. vue等单页面应用优缺点

    优点 Vue 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件,核心是一个响应的数据绑定系统. 数据驱动 组件化 轻量 简洁 高效 模块友好 页面切换快 缺点 不支持低版本的浏览器 ...

  5. Elasticsearch全文检索引擎。什么是elasticsearch? 有什么特点? 怎么使用?

    什么是ElasticSearch? Elasticsearch是一个基于Lucene的搜索引擎.它提供了具有HTTPWeb界面和无架构JSON文档的分布式,多租户能力的全文搜索引擎.Elasticse ...

  6. mysql对数据库的操作

    增: creae database 数据库名 create database 数据库名 character set utf8; 删: drop database 数据库名 改: alter datab ...

  7. 【miscellaneous】单播、广播和多播IP地址

    转自:http://www.cnblogs.com/gaoxing/archive/2012/02/19/2358484.html 除地址类别外,还可根据传输的消息特征将IP地址分为单播.广播或多播. ...

  8. 前端内容之CSS层叠样式表

    CSS(Cascading Style Sheet层叠样式表) 把HTML认为是网页的骨架 那么CSS就是用于对HTML骨架进行修饰,比如加背景色.显示方式.位置等等属性 CSS语法形式: 一个完整的 ...

  9. day32 网络编程之粘包问题

    1.最大半连接数 什么是最大半连接数 半连接:在进行TCP协议通信时,客户端与服务器端进行三次握手建立连接,但是有时客户端与服务器端进行了连接申请,服务器端也同意了申请(既已经完成三次握手的两次),此 ...

  10. VirtualBox本地虚拟机常见问题

    SSH连接本地虚拟机配置 https://www.jianshu.com/p/d59ed9f226d1 开启双向复制https://blog.csdn.net/wcx1293296315/articl ...