• Linux-软件包管理


    [TOC]

    软件包的安装方式

    分类 安装 版本
    rpm安装 预先编译打包,安装简单 软件版本偏低,(依赖包问题难解决)
    yum安装 预先编译打包,安装简单(实际上是rpm软件包仓库) 软件随网络仓库更新(自动安装依赖包)
    源码包 手动编译打包,安装繁琐 软件版本随意
    二进制包 解压即可使用, 安装简单 不能修改源码

    RPM(RedHat Package Manager)

    RPM介绍

    RPM(软件包管理器)是一种用于互联网下载包的打包及安装工具,它包含在某些Linux分发版中。它生成具有.RPM扩展名的文件,与Dpkg类似。

    RPM包命名规则

    name: 软件包名称
    version: 版本号
    count:该版本的编译发布次数
    release: 发布版本 el6, el7
    arch: 支持的CPU架构,可以为 i386(i686) / x86_64 / noarch(兼容前两者,即32位与64位)
    

    RPM包获取途径

    1.阿里云镜像/华为源/网易源 2.各种软件包的官方网站 3.光盘镜像

    RPM命令

    rpm	        #基于本地的rpm包进行管理
    
    
            -i	# 安装(install)
            -v	# 详细过程(verbose)
            -h	# 在安装过程中显示哈希标记进度条,配合-v使用(hash标记即#)
            -e	# 卸载(erase)
            -U      # 升级(update)
            -q 	# 查看指定软件包是否安装,后面加RPM报名(query)
            -qa	# 查看系统中已安装的所有RPM软件包(query all)
            -qi     # 查看指定软件的详细信息(query information)
            -ql     # 列出指定软件的安装目录和文件(query list)
            -qc     # 查询指定软件的配置文件(query config)
            -qd     # 查看指定软件的帮助文档(query documentation file)
            -qf     # 查询目录或文件属于哪个RPM软件包(query file)
            -q --scripts     # 查看软件安装前后执行的脚本
            -p      # 查看没有安装的软件包,常用格式 -qip(查看没有安装的软件包详细信息),-qlp(查看没有安装的软件包的安装目录)
    
    # 一些示例
    
    # 联网下载mongodb这个软件,版本号为3.0.0
    [root@wqh06 ~]# rpm -ivh https://mirrors.aliyun.com/mongodb/yum/redhat/7/mongodb-org/3.0/x86_64/RPMS/mongodb-org-mongos-3.0.0-1.el7.x86_64.rpm
    
    
    # 将mongodb这个软件版本升级为4.0.0
    [root@wqh06 ~]# rpm -Uvh https://mirrors.aliyun.com/mongodb/yum/redhat/7/mongodb-org/4.0/x86_64/RPMS/mongodb-org-mongos-4.0.0-1.el7.x86_64.rpm
    
    # 查询命令属于哪个软件包(效果和rpm -qf相同)
    [root@wqh06 ~]# rpm -q --file /etc/hosts
    setup-2.8.71-10.el7.noarch
    
    # 查看命令属于哪个软件包,前提必须使用绝对路径查询,本地必须要有这个命令
    [root@wqh06 ~]# rpm -qf  `which  ifconfig`
    net-tools-2.0-0.25.20131004git.el7.x86_64
    
    # 查询指定的软件包是否安装  
    [root@wqh06 ~]# rpm  -q  httpd
    httpd-2.4.6-88.el7.centos.x86_64
    [root@wqh06 ~]# rpm  -q  samba
    package samba is not installed
    
    # 查询所有的已安装的软件包
    [root@wqh06 ~]# rpm  -qa  | grep  tree
    tree-1.6.0-10.el7.x86_64
    
    # 查询跟软件包相关的目录和文件
    [root@wqh06 ~]# rpm -ql  httpd
    
    # 查看一个软件的相关配置文件
    [root@wqh06 ~]# rpm -qc  httpd
    
    # 显示软件包的本身相关信息 
    [root@wqh06 ~]# rpm -qi  httpd
    
    # 显示未安装的软件包的详细信息
    [root@wqh06 zabbix]# rpm -qip zabbix-web-pgsql-3.4.3-1.el7.noarch.rpm 
    
    # 显示未安装的软件包的安装目录
    [root@wqh06 zabbix]# rpm -qlp zabbix-server-mysql-3.4.14-1.el7.x86_64.rpm 
    
    # 显示某个软件包的相关命令
    [root@wqh06 ~]# rpm -ql $(rpm -qf /etc/hostname)| egrep '/usr/sbin/|/usr/bin/'
    
    # 爬取zabbix的全部rpm包
    // 用awk命令
    [root@wqh06 ~]# curl -s https://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/ |awk -F '["]' '{print "wget https://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/"$2}'|grep '.rpm'|bash
    
    // 用sed命令
    [root@wqh06 zabbix]# curl -s https://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/ | sed -nr 's#.*="(.*)".*#wget https://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/1#gp' | grep 'rpm' |bash
    
    // 用  awk -F '["]+' '$2~/rpm/'  替换掉  grep '.rpm'  ,(精确找出需要下载的href连接的行)
    [root@wqh06 zabbix]# curl -s  https://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/  | awk -F '["]+' '$2~/rpm/'| awk -F '["]' '{print "wget https://mirrors.aliyun.com/zabbix/zabbix/3.4/rhel/7/x86_64/"$2}'|bash   
    
    

    YUM(Yellow dog Updater, Modified)

    YUM介绍

    YUM软件包管理器基于RPM包管理,能够从指定的服务器自动下载RPM包并且安装,可以自动处理依赖性关系,并且一次安装所有依赖的软件包,无须繁琐地一次次下载、安装。

    YUM命令

    # 安装软件:yum install tree-x.x.x.rpm 或 yum install tree
    # 删除软件:yum remove tree-x.x.x.rpm 或 yum erase tree-x.x.x.rpm
    # 升级软件:yum update tree 或 yum upgrade tree
    # 查询信息:yum info tree (软件名即可,不要接整个RPM包名)
    # 搜索软件:yum search tree (RPM软件包中含有tree字串的)
    # 显示软件包依赖关系:yum deplist tree
    
    选项:
    
      -q                # 静默执行 
      -t                # 忽略错误
      -y                # 自动应答yes
      --skip-broken     # 忽略依赖问题
      --nogpgcheck      # 忽略GPG验证
    
      check-update       # 检查可更新的包
      clean all          # 清除全部
      clean packages     # 清除临时包文件(/var/cache/yum 下文件)
      clean headers      # 清除rpm头文件
      clean oldheaders   # 清除旧的rpm头文件
      deplist            # 列出包的依赖
      list               # 可安装和可更新的RPM包
      list installed     # 已安装的包(与 rpm -qa 相似)
      list extras        # 已安装且不在资源库的包
      info               # 可安装和可更新的RPM包信息(与 rpm -qi 相似)
      info installed     # 已安装包的详细信息
      install[RPM包]     # 安装包
      localinstall       # 安装本地的 RPM包,如果缺少依赖包会自动获取下载安装
      update[RPM包]      # 更新包
      search[关键词]      # 搜索包,根据 RPM包名所含字段搜索
      provides[关键词]    # 搜索包,根据文件名或者命令搜索对应的 RPM包(与 rpm -qf 相似)
      reinstall[RPM包]   # 重新安装包(如果不小心删除配置文件,install会报错,使用reinstall)
      repolist           # 显示资源库的配置
      remove[RPM包]      # 卸载包
        history            # 查看yum历史命令
             info [N]      # 查看某条历史yum命令的详细信息
             undo [N]      # 撤销某条历史yum命令,此命令可以卸载依赖包 
    
  • 相关阅读:
    递归判断多维数组中对象是否有值
    Web前端开发 --》 如何实现页面同时在移动端和pc端的兼容问题
    使用 yield 减少内存消耗
    git 中断 merge
    laravel 命令行测试 Uncaught ReflectionException: Class config does not exist
    laravel 单元测试设置模拟时间
    laravel 单元测试设置模拟时间
    php Mockery 错误 "call_user_func_array() expects parameter 1 to be a valid callback, class 'MockeryExpectation' does not have a method"
    git 创建空提交
    RabbitMQ 客户端开发向导
  • 原文地址:https://www.cnblogs.com/zzzwqh/p/12695197.html
Copyright © 2020-2023  润新知