美文网首页
RPM包和两种Yum源

RPM包和两种Yum源

作者: 光明_7c13 | 来源:发表于2019-08-04 11:19 被阅读0次

    RPM全称是RedHat Package Manager

    命名规则

    httpd-2.4.6-67.el7.centos.x86_64.rpm
     |     |    |  |     |      |    |
     |     |    |  |     |      |    |___.rpm-------软件包后缀名,一般为 *.rpm 或 *.src.rpm
     |     |    |  |     |      |________.x86_64----适用硬件平台,一般为 x86_64、i386 等
     |     |    |  |     |_______________.centos----适用操作系统,noarch为通用版本
     |     |    |  |_____________________.el7-------发行商版本号,el5为CentOS5与HREL5以下使用
     |     |    |________________________.67--------编译版本号,表示第几次编译
     |     |_____________________________.2.4.6-----软件版本号,分别为:主版本号.次版本号.修正号
     |___________________________________.httpd-----软件包名称
    
    

    MD5校验

    [root@kvm-docker ~]# md5sum anaconda-ks.cfg
    bb6e974d74a51b24d0576edca461a03b  anaconda-ks.cfg
    

    作用:对比下载的rpm包是否来源于官方

    SRPM

    全称Source RPM,也就是这个RPM档案里面含有原始码,扩展名为***.src.rpm
    Red Hat公司的RHEL发布出后,连带会将SRPM发布出来。社群的朋友就将这些SRP收集起来重新编译成为需要的软件,再重复解释为Centos,所以才能称为Red Hat的RHEL企业版同步。

    rpm包的安装:

    rpm 包安装工具,无法解决安装包的依赖性,Yum可以解决他的依赖性。

    rpm  -ivh
              -i 安装
              -v 显示安装
              -h 安装进度 
    

    rpm包的管理

    rpm -qi  //查询已安装的软件包的信息
    rpm -qa | grep 软件包名   //查询系统已经安装的软件
    rpm -ql 软件包名   //列出所有已安装的文件
    rpm -qc 软件包名  //列出配置文档
    rpm -V  //校验已经安装到系统中的文件的改动情况
    

    -V后面加值:

    *S 文件大小
    *L 链接文件
    *T 文件的创建时间
    *D 设备文件
    *U 文件的属主
    *G 文件的属组
    *M 文件的权限

      rpm2cpio 从一个rpm包中提出文件
     
      rpm -ql 软件名 | grep example  //查询软件包里的文件
    

    当不小心删除了系统里的一个重要的配置文档,该怎么找回来

    首先, 查询这个文件是哪个软件包安装的
    rpm -qf 绝对路径的完整文件名
    之后,将需要的文件提取到当前的工作目录
    rpm2cpio 软件包名.rpm | cpio -idv ./要提取的文件名
    例如
    rpm2cpio tree-1.6.0-10.el7.x86_64.rpm |cpio -idv ./usr/bin/tree

    Yum

    目的:

    搭建自己的yum源,主要是解决大批量服务器下载更新互联网带宽占用问题及速度问题以及不能访问的问题。
    生产环境需要大规模的安装部署rpm包,每次安装,更新,都需要上传,安装,比较麻烦,可以在生产环境中自建一个yum源。

    yum  -y install bash-com*  使用Yum命令时可以自动补全
    

    PID 文件

    通过配置文件的设置,可以把从远程仓库安装的软件保存到本地。

    /var/run/yum.pid
    这个文件在每次使用 yum 命令时被创建,正常安装软件结束后被删除。
    有时候非正常退出 yum install 命令时,这个文件会保留,并且里面写入了本次 yum install 命令的进程号。
    因为 YUM 是单进程的,就是每次只能运行一个 yum install 命令, 所以假如上次的命令没有正常结束,本次的命令就无法执行,此时就会报错,解决方法就是删除 /var/run/yum.pid 文件后,重新执行 yum install 命令即可。

      配置文件路径:/etc/yum.conf
    
    [main]
    cachedir=/var/cache/yum/$basearch/$releasever
    keepcache=0
    ...略...
    cachedir 设置缓存软件到本地的路径
    keepcache 设置是否保存缓存的软件包,0 不保存, 1 保存
    

    配置本地Yum源

    挂载镜像:

    mount /dev/sr0 /mnt
    

    查看镜像是否挂载成功:

    df -Th
    

    客户端配置文件放在本地的

    /etc/yum.repo/*.repo文件中
    

    格式为:

    [仓库名]
    name=仓库描述
    baseurl=file:///mnt
    enabled=0 | 1 (0:不激活配置;1:激活配置)
    gpgcheck=0 | 1 (0:安装前不对RPM包检测 1:反之)
    

    清理缓存:

    yum clean all 
    

    缓存新的数据:

    yum makecache
    

    检测:

    yum list 或者 yum -y install gcc
    

    配置磁盘Yum源(基于ftp服务)

    在光盘镜像中还存放着一个repodata目录,这个目录下存放的yum源的数据库文件,也可以理解为这里记录了软件包的互相依赖关系。
    只要把光盘镜像挂载到服务器上,然后配好yum源为挂载的镜像,当使用yum安装软件的时候yum就会到这个目录下面去查询数据库,然后再到Packages目录下去拿rpm包进行安装,所以简单理解可以说repodata是记录Packages目录下所有 rpm 包的数据库

    先挂载镜像并将Packages 拷贝到 /var/ftp/ftpYum下

    mount /dev/sr0/ mnt
    cp /mnt/Packages /var/ftp/ftpYum
    
    安装FTP Server
    yum -y install vsftpd
    
    下载工具 createrepo
    yum -y install createrepo
    
    进入/etc/yum.repo.d/目录下创建ftpYum.repo
    cd /etc/yum.repo.d 
    mkdir back 
    mv C*  back  //目的是编写的配置文件不受影响  
    
    
    使Packages里面的rpm包产生依关系
    createrepo /var/ftp/ftpYum/Packages
    
    编写配置文件vim ftpYum.repo
    清除Yum缓存并重新生成
    yum clean all 
    yum makecache
    

    相关文章

      网友评论

          本文标题:RPM包和两种Yum源

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