美文网首页我用 LinuxLinuxLinux学习之路
day16-Linux学习 软件管理 rpm、yum (上)

day16-Linux学习 软件管理 rpm、yum (上)

作者: 云运维之道 | 来源:发表于2019-08-14 15:06 被阅读0次

    一、RPM基本概述

    1.什么是rpm?

    RPM全称 RPM Package Manager 缩写,由红帽开发用于软件包的安装升级卸载与查询

    2.rpm包名组成部分?

    RPM包命名以-将软件分成了若干部分bash-4.2.46-28.el7.x86_64.rpm

    bash-4.2.46-28.el7.x86_64.rpm
    
    #bash              软件名称
    #4.2.46            版本号
    #28                发布次数
    #el7.x86_64        硬件平台,表示适用于64位操作系统  
    #rpm               扩展名
    

    3.获取rpm包

    (1)本地光盘ISO 数量有限 版本过低 适合刚开始接触
    (2)联网获取 很多地方都可以获取到软件包 版本较新

    4.其他安装软件方式

    分类 安装 版本
    rpm包 预先编译打包,安装简单 软件版本偏低
    源码包 手动编译打包,安装繁琐 软件版本随意
    二进制包 解压即可使用, 安装简单 不能修改源码

    二、RPM使用示例

    1.rpm包安装

    使用rpm命令进行安装软件的常用参数

    #-i         安装rpm
    #-v         显示安装详细信息
    #-h         显示安装rpm进度
    
    #安装软件包, 需要指定软件包绝对路径
    [root@oldboy ~]# rpm -ivh /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm
    
    #在软件包所在目录下可以不指定绝对路径
    [root@oldboy ~]# cd /mnt/Packages/
    [root@oldboy /mnt/Packages]# rpm -ivh zsh-5.0.2-28.el7.x86_64.rpm
    

    2.查询已安装好的rpm包

    #选项
    #rpm -q     查看指定软件包是否安装
    #rpm -qa    查看系统中已安装的所有RPM软件包列表
    #rpm -ql    查询指定软件包所安装的目录、文件列表
    #rpm -qc    查询指定软件包的配置文件
    #rpm -qf    查询已安装过的文件或目录属于哪个RPM软件
    
    #查询vsftpd这个rpm包是否安装
    [root@oldboy ~]# rpm -q vsftpd
    
    #模糊查找系统已安装的rpm包
    [root@oldboy ~]# rpm -qa |grep ftp
    
    #查询rpm包所安装的文件
    [root@oldboy ~]# rpm -ql vsftpd
    
    #查询rpm包相关的配置文件
    [root@oldboy ~]# rpm -qc vsftpd
    
    #查询配置文件或命令来自于哪个rpm包
    [root@oldboy ~]# rpm -qf /etc/vsftpd/vsftpd.conf
    [root@oldboy ~]# rpm -qf /usr/sbin/vsftpd
    

    3.RPM包升级

    #选项
    #rpm -U     如果老版本不存在则全新安装,如果存在有新版本即升级
    
    #1.先安装低版本
    [root@oldboy ~]# rpm -ivh https://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-agent-3.0.9-1.el7.x86_64.rpm
      
    #2.升级版本
    [root@oldboy ~]# rpm -Uvh https://mirrors.aliyun.com/zabbix/zabbix/4.2/rhel/7/x86_64/zabbix-agent-4.2.0-1.el7.x86_64.rpm
    

    4.RPM包卸载

    卸载包时需要先把依赖的包卸载掉,如果依赖的包是系统所必须的,那就不能卸载这个包,否则会造成系统崩溃。
    rpm只适用于卸载无依赖关系的软件包

    [root@oldboy ~]# rpm -e zsh
    

    三、YUM基本介绍

    1.什么是YUM

    Yum是RedHat以及CentOS中的软件包管理器。
    能够通过互联网下载 .rpm 包并且安装,并可以自动处理依赖性关系,无须繁琐地一次次下载、安装。

    2.YUM源是什么

    要成功的使用 YUM 工具安装更新软件或系统,就需要有一个包含各种 rpm 软件包的repository(软件仓库),这个软件仓库我们习惯称为 yum 源(可以是本地源、网络源)。

    3.YUM源配置实例

    (1)阿里yum源

    #默认系统是国外源,需要替换为国内的源
    [root@oldboy ~]# wget -O /etc/yum.repos.d/CentOS-Base.repo \
    http://mirrors.aliyun.com/repo/Centos-7.repo
    
    #扩展源,有很多软件在基本源中没有
    [root@oldboy ~]# wget -O /etc/yum.repos.d/epel.repo \
    http://mirrors.aliyun.com/repo/epel-7.repo
    

    (2)Nginx官方源

    [root@oldboy ~]# vim /etc/yum.repos.d/nginx.repo
    [nginx]
    name=nginx repo 
    baseurl=http://nginx.org/packages/centos/7/$basearch/ 
    gpgcheck=0
    enabled=1
    

    (3)自动配置

    #安装 zabbix-release软件. 会释放一个.repo文件
    [root@oldboy ~]# rpm -Uvh https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-release-4.2-2.el7.noarch.rpm
    

    4.YUM实践案例

    (1)使用yum查询软件包

    [root@oldboy ~]# yum list         #列出所有的已安装和未安装的软件包
    [root@oldboy ~]# yum list | less  #分页查看   有@代表已安装的软件包  无@代表没安装的软件包
    [root@oldboy ~]# yum list installed  #列出系统中已成功安装的软件包
    

    (2)使用yum安装软件包

    [root@oldboy ~]# yum install tree       
    [root@oldboy ~]# yum install tree -y    #非交互
    
    #同时安装多个软件包
    [root@oldboy ~]# yum install vim wget unzip tree lrzsz -y
    
    #安装本地的rpm包
    [root@oldboy ~]# yum localinstall /mnt/Packages/bind-9.9.4-50.el7.x86_64.rpm
    #如果本地软件包有依赖关系, 会自动从软件仓库中下载所需依赖,如果搜不到会报错
    

    (3)使用yum更新软件包

    #更新acl软件
    [root@oldboy ~]#  yum update acl -y
    
    #如下的执行很危险,这代表更新整个系统所有的软件,包括内核,会将配置文件改变
    [root@oldboy ~]#  yum update -y 
    #本命令适合刚安装好的系统,硬件服务器,不适合云服务器
    

    (4)使用yum删除软件包

    [root@oldboy ~]# yum remove samba -y   #不能随便使用删除
    

    相关文章

      网友评论

        本文标题:day16-Linux学习 软件管理 rpm、yum (上)

        本文链接:https://www.haomeiwen.com/subject/jsbgjctx.html