Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

【Red Hat系列】手动装包.rpm/rpm

  • 简介

    • 全称 Redhat Package Manager
    • 是一种文件,后缀名是.rpm,存储了单个软件的各种信息和所需依赖
  • 可用于安装软件

    • 首先下载单个文件到本地
      wget xxx.rpm
      
    • 然后
      • 借助 rpm 命令
        rpm -ivh xxx.rpm
        
        • 如果不是安装,而是在已有的基础上更新,i要换成U
          rpm –Uvh xxx.rpm
          
      • 或者借助 yum 命令
        yum install xxx.rpm
        
      • 【注意】这里用yum直接安装,也是能通过rpm -qa查到的,所以也是能通过下面的方式卸载的(当然,也可以用yum remove卸载)
      • 本质上,yum命令安装的底层,也是调用rpm命令,如果能直接给.rpm文件当然最好,不然就会去下面的repo那里直接拿.rpm文件的网址路径,直接通过路径安装
      • 所以上面的xxx.rpm也可以直接换成网址,跳过wget下载的步骤
  • 装完后,如果想卸载

    • 先查到包的全名
      rpm -qa | grep "包大概名字"
      
    • 卸载指令
      rpm –e 包的全名
      
      • 这里e是erase擦除的意思
  • 查看是否安装有某个软件

    rpm -qa | grep "软件名"
    

.repo

  • 简介

    • 全称 repository
    • 是一种文件,后缀名是.repo,存储了包的安装源
    • 【问】什么是安装源?
    • 【答】源就相当于各种手机获取软件的商店,从这里可以获取到yum想要安装的所有包的rpm文件,并自动安装
  • 系统内的源

    • 保存位置
      cd /etc/yum.repos.d/ && ls
      
    • 以基础源CentOS-Base.repo文件为例子
      • 内容为
        [base]
        name=CentOS-$releasever - Base
        mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
        #baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
        gpgcheck=1
        enabled=1
        gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
        
      • 解释
        • 第1行[base]:表示id,必须独一无二
        • 第2行name:描述信息,有一个变量$releasever
        • 第3行mirrorlist:后面的url打开后是地址列表,yum安装某个软件时会从中遍历获取查找
          • 实际例子
            • 访问
              http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os
              
            • 得到地址列表
              http://xxxx/centos/7.9.2009/os/x86_64/
              ......
              
          • release代表centos系统的大版本号,可用变量$releasever得到,这里是7
          • arch代表cpu架构,可用变量$basearch得到,这里是x86_64
          • repo代表包所属类型,这里是os
        • 第4行gpgcheck:1表示需要密钥校验,确保包的来源安全
        • 第5行enabled: 1表示启用这个源
        • 第6行gpgkey:后面跟着密钥存储地址,以file://开头,跟上目录/...
    • 修改前的备份操作
      mkdir repo_bak
      
      cp *.repo repo_bak/
      
  • 获取最权威的EPEL安装源

    • 全称Extra Packages for EnterpriseLinux,里面含有的包种类更丰富

    • 查看是否已安装,且版本是什么

      yum list installed | grep epel-release
      
    • (不推荐)用yum安装

      yum install epel-release
      
    • (推荐)装指定或最新版本

      • 下载
        wget https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-14.noarch.rpm
        
        • 如果上面的地址失效了,或版本不符合,可以自己去网站找
          • 访问 网站
          • 首先选取7、8、9,代表centos版本
          • 然后选x86_64,代表cpu架构
          • 再选Packages,然后从字母索引进去,找到e
          • 找到epel-release-7-14.noarch.rpm,右键复制链接地址,用wget下到本地
      • 安装
        rpm -ivh epel-release-7-14.noarch.rpm
        
        • 如果已经安装有,安装是会失败的,需要先用上面对rpm的方式卸载掉
        • 检查是否装成功
          yum list installed | grep epel-release
          
          • 会显示版本为7-14
          • 会在目录/etc/yum.repos.d/下生成epel.repo文件
        • 用nginx做关键词测试
          yum --enablerepo=epel info nginx
          
          • 会输出有最新版可安装
  • 获取国内更快的Base安装源

    • 记得先备份原来的
      cp CentOS-Base.repo CentOS-Base.repo.bak
      
    • 直接下载然后用-O指令,输出覆盖
      wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
      
  • 最后要清理旧缓存和生成新缓存,完成添加仓库的操作

    • 清理
      yum clean all
      
    • 生成(需要连网)
      yum makecache
      
    • 列出新的源
      yum repolist