• Day 16 软件管理


    1.RPM基本概述

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

    2.如何获取rpm包
    在我们刚开始学习rpm包,建议先使用本地CentOS7的镜像,但实际生产环境中都是通过联网的方式获取rpm包。(先学会,你懂的?)
    我们先通过虚拟机加载镜像,然后在linux中执行 mount /dev/cdrom /mnt,此时你会在/mnt/Packages目录下看到很多rpm的包文件。那么就可以开始rpm包管理之旅。

    3.扩展: Linux中除了rpm安装软件,是否还有安装软件方式?

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

    2.RPM使用示例

    1.rpm包如何安装
    以下列出了rpm命令进行安装软件的常用参数

    选项 描述
    -i 安装rpm
    -v 显示安装详细信息
    -h 显示安装rpm进度
    --force 强制重新安装
    --nodeps 忽略依赖关系
    #安装软件包, 需要指定软件包绝对路径
    [root@xuliangwei ~]# rpm -ivh /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm
    [root@xuliangwei ~]# rpm -ivh /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm
    
    #在软件包所在目录下可以不指定绝对路径
    [root@xuliangwei ~]# cd /mnt/Packages/
    [root@xuliangwei Packages]# rpm -ivh zsh-5.0.2-28.el7.x86_64.rpm
    
    #如果软件包存在, 强制再次安装
    [root@xuliangwei ~]# rpm -ivh --force /mnt/Packages/tree-1.5.3-3.el6.x86_64.rpm
    
    #安装samba服务需要依赖其他组件, 使用--nodeps可重新强制安装
    [root@xuliangwei ~]# rpm -ivh --nodeps  /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm
    
    

    2.如何查询已安装好的rpm包

    选项 描述
    rpm -q 查看指定软件包是否安装
    rpm -qa 查看系统中已安装的所有RPM软件包列表
    rpm -qi 查看指定软件的详细信息
    rpm -ql 查询指定软件包所安装的目录、文件列表
    rpm -qc 查询指定软件包的配置文件
    rpm -qf 查询文件或目录属于哪个RPM软件
    rpm -qip 查询未安装的rpm包详细信息
    rpm -qlp 查询未安装的软件包会产生哪些文件
    #查询vsftpd这个rpm包是否安装
    [root@xuliangwei ~]# rpm -q vsftpd
    
    #模糊查找系统已安装的rpm包
    [root@xuliangwei ~]# rpm -qa |grep ftp
    
    #查询vsftpd软件包的相关信息
    [root@xuliangwei ~]# rpm -qi vsftpd
    
    #查询rpm包所安装的文件
    [root@xuliangwei ~]# rpm -ql vsftpd
    
    #查询rpm包相关的配置文件
    [root@xuliangwei ~]# rpm -qc vsftpd
    
    #查询配置文件或命令来自于哪个rpm包
    [root@xuliangwei ~]# rpm -qf /etc/vsftpd/vsftpd.conf
    [root@xuliangwei ~]# rpm -qf /usr/sbin/vsftpd
    
    #查询未安装的软件包会产生哪些文件
    [root@xuliangwei ~]# rpm -qlp /mnt/Packages/samba-3.6.23-41.el6.x86_64.rpm
    
    #查询未安装的软件包会产生哪些文件
    [root@xuliangwei ~]# rpm -qip /mnt/Packages/samba-3.6.23-41.el6.x86_64.rpm
    
    

    3.RPM包升级

    选项 描述
    rpm -U 如果老版本不存在则全新安装,如果存在有新版即升级
    # wget  https://mirrors.aliyun.com/zabbix/zabbix/3.0/rhel/7/x86_64/zabbix-agent-3.0.9-1.el7.x86_64.rpm
    # wget  https://mirrors.aliyun.com/zabbix/zabbix/4.2/rhel/7/x86_64/zabbix-agent-4.2.0-1.el7.x86_64.rpm
    
    #1.先安装低版本
    [root@www.xuliangwei.com ~]# rpm -ivh zabbix-agent-3.0.9-1.el7.x86_64.rpm
    
    #2.尝试安装高版本(会出现错误)
    [root@www.xuliangwei.com ~]# rpm -ivh zabbix-agent-4.2.0-1.el7.x86_64.rpm
    
    #3.使用升级的方式,完美解决替换
    [root@www.xuliangwei.com ~]# rpm -Uvh zabbix-agent-4.2.0-1.el7.x86_64.rpm
    
    

    3.RPM包卸载
    卸载包时需要先把依赖的包卸载掉,如果依赖的包是系统所必须的,那就不能卸载这个包,否则会造成系统崩溃。

    #先查询, 然后卸载 
    [root@www.xuliangwei.com ~]# rpm -qa |grep sh
    [root@www.xuliangwei.com ~]# rpm -e zsh
    
    

    4.RPM包校验(扩展了解)
    软件相关的数据库存放于/var/lib/rpm目录

    参数 描述
    S 文件的容量大小是否被改变
    M 文件的类型或者文件的属性是否被修改
    5 MD5 这一种指纹加密的内容已经不同
    L 路径已经被改变
    U 文件的所属主已被修改
    G 文件的所属组已被修改
    T 文件的创建时间已被改变
    [root@www.xuliangwei.com ~]# rpm -V vsftpd
    S.5....T.  c /etc/pam.d/vsftpd
    .......T.  c /etc/vsftpd/ftpusers
    S.5....T.  c /etc/vsftpd/vsftpd.conf
    .M.......    /var/ftp/pub
    
    

    6.RPM包小结
    如何查询 util-linux 软件包安装了哪些文件? 
    如何查询 mkdir 命令是由哪个 RPM 软件包安装的?
    安装 .rpm 软件包时,-i、-U、选项有何区别?

    3.YUM基本介绍

    1.什么是YUM
    Yum是RedHat以及CentOS中的软件包管理器。能够通过互联网下载 .rpm 包并且安装,并可以自动处理依赖性关系,无须繁琐地一次次下载、安装。(PS: YUM是生产最佳实践)

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

    3.YUM源配置实例

    1.阿里yum源

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

    2.Nginx官方源,比如在学习Nginx时需要使用官方的yum源来安装

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

    PS:源超找方式基本一致,zabbix,Docker、Nginx、saltstack、openstack

    4.YUM实践案例

    1.使用yum查询软件包的方式

    [root@www.xuliangwei.com ~]# yum list
    [root@www.xuliangwei.com ~]# yum list|grep ftp
    [root@www.xuliangwei.com ~]# yum info ftp
    
    

    2.使用yum安装软件包的方式

    [root@www.xuliangwei.com ~]# yum install tree
    [root@www.xuliangwei.com ~]# yum install tree -y    #非交互
    
    #安装本地的rpm包, 如果有依赖关系, 会自动从软件仓库中下载所需依赖
    [root@www.xuliangwei.com ~]# yum localinstall /mnt/Packages/bind-9.9.4-50.el7.x86_64.rpm
    
    #直接安装网络上的rpm包
    [root@www.xuliangwei.com ~]# yum install http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm
    
    

    3.使用yum重新安装软件包的方式

    #1.如果不小心删除vsftpd配置文件
    [root@www.xuliangwei.com ~]# rm -f /etc/vsftpd/vsftpd.conf
    
    #2.可以对软件进行重新安装
    [root@www.xuliangwei.com ~]# yum reinstall vsftpd
    
    #3.检查软件的配置文件
    [root@www.xuliangwei.com ~]# rpm -qc vsftpd
    /etc/logrotate.d/vsftpd
    /etc/pam.d/vsftpd
    /etc/vsftpd/ftpusers
    /etc/vsftpd/user_list
    /etc/vsftpd/vsftpd.conf
    
    

    3.使用yum更新软件包

    #对比Linux已安装的软件和yum仓库中的软件, 有哪些需要升级
    [root@www.xuliangwei.com ~]# yum check-update
    
    #更新acl软件
    [root@www.xuliangwei.com ~]#  yum update acl -y
    
    #如下的执行很危险,这代表更新整个系统所有的软件,包括内核
    [root@www.xuliangwei.com ~]#  yum update -y
    
    

    4.使用yum删除软件包

    [root@www.xuliangwei.com ~]# yum install samba -y
    [root@www.xuliangwei.com ~]# yum erase samba -y
    [root@www.xuliangwei.com ~]# yum remove samba -y
    
  • 相关阅读:
    14、流程分析法
    13、场景法
    SPL之Iterator(迭代器)接口
    MySQL的自动补全和语法高亮工具MyCli
    如何在mmseg3添加词库
    sphinx 配置文件全解析
    配置samba 服务器 共享Linux目录
    Centos7 下coreseek的安装
    机器学习常用的降维方法
    mysql 分类
  • 原文地址:https://www.cnblogs.com/baozexu/p/11372866.html
Copyright © 2020-2023  润新知