zoukankan      html  css  js  c++  java
  • RPM包和YUM仓库管理

    1.RPM包管理

    RPM
    RPM Package Manger,前身Redhat Package Manger,由红帽开发用于软件包的安装升级卸载与查询
    有一个完整的数据库体系,每个RPM包的所有信息都固定保存到指定的位置

    源码
    最原始代码,最新的版本,功能、bug

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

    2.常见的软件包
    注意:不管是源码包,还是二进制包,安装时都可能会有依赖关系!

    系统平台      包类型    工具    自动解决依赖
    RedHat/Centos RPM       rpm         yum
    Ubuntu/Debian DPKG      dpkg        apt

    3.RPM获取路径
    1.RedHat光盘或官方网站
    2.RPM查询官网网站
    3.Nginx软件官方网站

    4.RPM软件包命名规则

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

    name:软件包名称
    version:版本号,主版本,重大更新,次版本,子功能更新,修订号,修复bug
    release:发布版本el6,el7(hostnamectl)
    arch:系统平台

    rpm包的组成:
    安装释放的文件
    软件包的元数据(版本,发布号,架构,描述,要求,更改日志等)
    脚本:安装前执行的脚本和安装后的脚本

    5.查看系统光驱中RPM软件包
    如果你的系统中还有系统的安装盘,首先我们让虚拟机链接上我们的系统安装盘,然后我们可以通过mount /dev/cdrom /mnt/命令把光驱
    挂载到/mnt目录下,那么你会在/mnt/Packages目录下看到很多.rpm的文件。

    [root@xiaoming ~]# mount /dev/cdrom /mnt/
    mount: /dev/sr0 is write-protected, mounting read-only
    [root@xiaoming ~]# ls /mnt/
    CentOS_BuildTag  EULA  LiveOS    RPM-GPG-KEY-CentOS-7          TRANS.TBL  isolinux
    EFI              GPL   Packages  RPM-GPG-KEY-CentOS-Testing-7  images     repodata
    [root@xiaoming ~]# ls /mnt/Packages/ | head
    GeoIP-1.5.0-14.el7.x86_64.rpm
    ModemManager-glib-1.6.10-3.el7_6.x86_64.rpm
    NetworkManager-1.18.0-5.el7.x86_64.rpm
    ...

    RPM包安装
    使用rpm命令安装软件包,需要了解如下参数:

    -i:安装
    -v:详细安装
    -h:安装进度
    //安装软件吧,需要指定软件包的绝对路径
    [root@xiaoming Packages]# rpm -ivh /mnt/Packages/sg3* 
    warning: /mnt/Packages/sg3_utils-1.37-18.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
    Preparing...                          ################################# [100%]
    Updating / installing...
       1:sg3_utils-libs-1.37-18.el7       ################################# [ 50%]
       2:sg3_utils-1.37-18.el7            ################################# [100%]
    preparing:准备过程
         检查软件包的依赖关系
             只要安装软件包中有依赖关系,且没有找到所依赖的软件包,停止安装
         检查软件包是否已安装
             只要检测安装软件包中有一个已经安装了,就停止安装
    
    //如果软件包已安装,强制再次安装
    [root@xiaoming Packages]# rpm -ivh --force /mnt/Packages/sg3* 
    warning: /mnt/Packages/sg3_utils-1.37-18.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
    Preparing...                          ################################# [100%]
    Updating / installing...
       1:sg3_utils-libs-1.37-18.el7       ################################# [ 50%]
       2:sg3_utils-1.37-18.el7            ################################# [100%]
    --nodeps
      忽略依赖关系(不建议) 
    --force
      强制覆盖安装  
      覆盖安装过程中,如果软件自带文件都存在,安装过程中不会将这些文件重新覆盖
     
     
    RPM包查询
    rpm -q  //查看指定软件包是否安装                  ***
    rpm -qa //查看系统中已安装的所有RPM软件包列表     *****
    [root@xiaoming Packages]# rpm -qa | wc -l
    341
    [root@xiaoming ~]# rpm -qa vim*
    vim-common-7.4.629-6.el7.x86_64
    vim-minimal-7.4.629-6.el7.x86_64
    vim-filesystem-7.4.629-6.el7.x86_64
    vim-enhanced-7.4.629-6.el7.x86_64
    
    rpm -qi //查看指定软件的详细信息
    rpm -ql //查询指定软件包所安装的目录、文件列表    ***
    rpm -qc //查询指定软件包的配置文件
    rpm -qd //查询指定软件包的帮助文档
    rpm -qf //查询文件或目录属于哪个RPM软件           *****
    [root@xiaoming Packages]# rpm -qf `which mount`
    util-linux-2.23.2-61.el7.x86_64
    
    rpm -q --scripts  //查询rpm包安装前和安装后执行的脚本
    
    //查询未安装的软件包信息
    rpm -qip  //查询未安装的rpm的详细信息
    rpm -qlp  //查询未安装的软件包会产生哪些文件
    
    //查询未安装的软件会产生哪些文件
    [root@xiaoming ~]#rpm -qlp /mnt/Packages/shadow-utils-4.6-5.el7.x86_64.rpm 
    
    //查询未安装的rpm的详细信息
    [root@xiaoming ~]# rpm -qip /mnt/Packages/shadow-utils-4.6-5.el7.x86_64.rpm 
    
    
    RPM升级
    -U 如果老版本不存在,就全新安装,如果存在有新版即升级
    -F 老版本必须存在
    
    //如果有新版则升级,软件升级不要跨操作系统主版本号
    [root@xiaoming ~]# rpm -Uvh /mnt/Packages/ustr-1.0.4-16.el7.x86_64.rpm      
    warning: /mnt/Packages/ustr-1.0.4-16.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY
    Preparing...                          ################################# [100%]
        package ustr-1.0.4-16.el7.x86_64 is already installed

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

    RPM包校验
    软件相关的数据库存放于/var/lib/rpm目录

    S //文件的容量大小是否被改变
    M //文件的类型或者文件的属性是否被修改
    5 //MD5这一种指纹加密的内容已经不同
    D //装置的主/次代码已经改变
    L //路径已经被改变
    U //文件的所属主已被修改
    G //文件的所属组已被修改
    T //文件的创建时间已被修改

    RPM包小结
    如何查询util-linux软件包安装了哪些文件?
    [root@xiaoming ~]# rpm -qa util-linux*
    util-linux-2.23.2-61.el7.x86_64

    如何查询mkdir命令是由哪个RPM软件包安装的
    [root@xiaoming ~]# rpm -qf `which mkdir`
    coreutils-8.22-24.el7.x86_64

    安装.rpm软件包时,-i、-U、-F选项有何区别
    -i 安装软件包,必须之前没有任何版本
    -U 升级安装软件包,之前可有可无
    -F 刷新安装软件包,必须有之前版本

    YUM软件仓库管理
    yum
    yellowdog update modify

    yum是基于RPM包管理,能够自动解决依赖关系,极大的方便rpm包的安装升级
    1.联网获取软件
    2.基于RPM管理
    3.自动解决依赖
    4.命令简单好记
    5.生产最佳实践

    YUM软件仓库管理
    本地YUM仓库
    有时候你的linux系统不能联网,当然就不能很便捷的使用联网的yum源了,这时候就需要你自己会利用linux光盘制作一个yum源。具体步骤如下:

    1.挂载镜像
    [root@xiaoming ~]# mount /dev/cdrom /mnt
    
    2.备份原有仓库
    [root@xiaoming ~]# gzip /etc/yum.repos.d/*
    
    [root@xiaoming ~]# mkdir /etc/yum.repos.d/backup
    [root@xiaoming ~]# cp /etc/yum.repos.d/*.gz /etc/yum.repos.d/backup/
    
    
    3.创建新仓库文件,并加入如下内容:
    
    手动添加repo配置文件
    [root@xiaoming yum.repos.d]# vim mnt.repo 
    
    [local]
    name=this is local repo
    baseurl=file:///mnt
    enabled=1
    gpgcheck=0
    
    []          //仓库名称
    name        //仓库描述信息
    baseurl     //YUM源url地址,可以是file://
    enabled     //是否激活该YUM源(0代表禁用,1代表允许)
    gpgcheck    //安装软件时是否检查签名(0代表禁用,1代表允许)
    
    4.刷新repos生成缓存
    [root@xiaoming yum.repos.d]# yum clean all
    [root@xiaoming yum.repos.d]# yum makecache
    缺点:软件版本较低 2.软件不全 3.光驱读速慢
    临时使用

    网络YUM源仓库

    官方网络YUM源配置

    阿里镜像站点。https://developer.aliyun.com/mirror/centos?spm=a2c6h.13651102.0.0.53322f70WwceaG
    wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
    
    EPEL扩展源
    
    //国外epel源
    [root@xiaoming ~]# yum -y install epel-release
    
    //阿里云epel源
    wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
    https://developer.aliyun.com/mirror

    官方YUM源仓库

    //Nginx官方源
    cat >/etc/yum.repos.d/nginx.repo<<EOF
    [nginx-stable]
    name=nginx stable repo
    baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
    gpgcheck=0
    enabled=1
    gpgkey=https://nginx.org/keys/nginx_signing.key
    module_hotfixes=true
    EOF

    mysql官方库
    创建mysql官方库
    yum install -y https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm
    yum makecache

    zabbix官方库
    创建zabbix官方库
    rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/7/x86_64/zabbix-release-4.4-1.el7.noarch.rpm

    openstack官方库

    yum install centos-release-openstack-pike
    yum install https://rdoproject.org/repos/rdo-release.rpm

    企业部署服务器的流程:
    1.最小化安装操作系统
    2.部署网络库和官方库
    3.更新内核
    yum update

  • 相关阅读:
    第二次结对作业(陆桂莺+崔亚明)
    第一次结对作业
    第二次作业:代码互改
    markdown详细
    第一次个人编程作业:我的分数我做主
    手动下载transformers的模型
    torch设置GPU
    Python import的搜索路径和不可以import的解决方法 (On Linux)
    Python中windows路径的3种写法
    一台计算机安装多个版本的torch和CUDA的教程
  • 原文地址:https://www.cnblogs.com/xmtxh/p/12127190.html
Copyright © 2011-2022 走看看