Linux之Yum_rpm_repo详解

这篇具有很好参考价值的文章主要介绍了Linux之Yum_rpm_repo详解。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

YUM(Yellowdog Updater Modified)是一个基于RPM(Redhat Package Manager红帽包管理器)包的前端软件管理工具,是C/S架构下的一种rpm的前端工具,YUM通过分析rpm header数据,自动处理依赖关系,从指定的repositories仓库源一次性自动下载安装所有依赖的rpm包,无须繁琐地一次次下载、安装。

repo就是repositories(仓库)的缩写,repositories其实就是存放rpm包的路径,比如file://本地路径或ftp://服务器路径或http://网站url路径

我们要使用YUM,必须要先找到存放rpm包的Repository仓库源,这些Repository仓库源的信息存放在目录为/etc/yum.repos.d/下的文件扩展名为repo的配置文件中,通常一个repo配置文件定义了一个或者多个Repository仓库源的细节内容,其中可能会多个repo配置文件,每一个repo配置文件中都可以配置一个或多个Repository,但是最终所有Repository仓库源会被合并为一个交给系统(可以通过yum repolist all显示出来),所以多个repo配置文件只是为了方便管理。repo配置文件中的设置内容将被yum命令读取和应用,这样yum命令就从这些Repository仓库源下载需要安装或者升级的rpm包

查看拥有的repo仓库列表:yum repolist all
列出含有关键字XX的软件包:yum list |grep XX
查询软件XX:yum info xx
搜索软件XX:yum search xx
安装软件包xx.rpm:yum install xx.rpm
删除软件包xx.rpm:yum erase xx.rpm
升级软件XX:yum upgrade xx或者yum update xx
区别:yum upgrade会删除旧版本的package,而yum update则会保留(obsoletes=0),建议使用yum update,防止旧版本包被删除从而导致其他旧的软件包依赖出现问题。

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/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

[base]:repo的id,必须是独一无二的,不能和其他源文件冲突,一旦冲突,可能这个repo id对应的repo name就不显示了
name:repo的名称
mirrorlist:为rpm包对应的一大堆路径或baseurl,yum根据使用者客户端的IP地址和mirrorlist中信息来选取在地理位置上靠近客户端的repo仓库源,如mirrorlist不工作时可以使用baseurl。
baseurl:为rpm包对应的目录或路径,如果我们想把挂载在本地光盘/mnt为rpm路径,可以使用baseurl来配置成baseurl=file:///mnt/Server,如果我们想把阿里云rpm仓库为rpm路径,可以使用baseurl来配置成baseurl=http://mirrors.aliyun.com/centos/6/os/x86_64

示例中,我们确定repo配置文件中$releasever$basearch变量的值的方法:使用cat命令打开/etc/yum.conf文件中看到一行信息cachedir=/var/cache/yum/$basearch/$releasever,我们可以进入/var/cache/yum/文件夹下,发现 $basearch 其实就是 x86_64,$releasever就是7,然后代入mirrorlist中发现mirrorlist就是http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=$infra网页,该网页下面一堆的url,代入baseurl发现baseurl就是http://mirror.centos.org/centos/7/os/x86_64/

enabled=0/1:只有1和0两个值,为1时表示repo可以获取,0表示关闭,默认是1
gpgcheck=0/1:只有1和0两个值,为1时表示进行gpg校验,默认是1
gpgkey:数字证书公钥文件所在位置,用户下载安装RPM包时,可以通过这个公钥来验证RPM包是不是官方签名的,示例中我们可以打开/etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7文件看看这个公钥信息

实验1

[root@FRSPGSQLDEV3]# ll /etc/yum.repos.d/
total 8
-rw-r--r--. 1 root root 633 Feb  9 21:46 CentOS-Base.repo
-rw-r--r--. 1 root root 213 Feb  9 21:47 pgdg-redhat-all.repo

[root@FRSPGSQLDEV3]# cat /etc/yum.repos.d/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
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

[centosplus]
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7


[root@FRSPGSQLDEV3]# cat /etc/yum.repos.d/pgdg-redhat-all.repo
[pgdg12]
name=PostgreSQL 12 $releasever - $basearch
baseurl=https://download.postgresql.org/pub/repos/yum/12/redhat/rhel-$releasever-$basearch
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG


[root@FRSPGSQLDEV3]# yum repolist all
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: la.mirrors.clouvider.net
repo id                    repo name                       status
base/7/x86_64              CentOS-7 - Base                 enabled: 10,072
centosplus/7/x86_64        CentOS-7 - Plus                 disabled
pgdg12/7/x86_64            PostgreSQL 12 7 - x86_64        disabled
repolist: 10,072

结果:只显示了/etc/yum.repos.d/CentOS-Base.repo中的repo id为的base有些,其他的repo id都是无效,因为其他的repo id对应的enabled=0

实验2
pgdg-redhat-all.repo添加内容[centosplus],如下,该内容和CentOS-Base.repo中[centosplus]一样

[root@FRSPGSQLDEV3]# vim /etc/yum.repos.d/pgdg-redhat-all.repo
[root@FRSPGSQLDEV3]# cat /etc/yum.repos.d/pgdg-redhat-all.repo
[pgdg12]
name=PostgreSQL 12 $releasever - $basearch
baseurl=https://download.postgresql.org/pub/repos/yum/12/redhat/rhel-$releasever-$basearch
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG

[centosplus]
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

[root@FRSPGSQLDEV3]# yum repolist all
Loaded plugins: fastestmirror
Repository centosplus is listed more than once in the configuration
Loading mirror speeds from cached hostfile
 * base: la.mirrors.clouvider.net
repo id                    repo name                       status
base/7/x86_64              CentOS-7 - Base                 enabled: 10,072
centosplus/7/x86_64        CentOS-7 - Plus                 disabled
pgdg12/7/x86_64            PostgreSQL 12 7 - x86_64        disabled
repolist: 10,072

结果:只显示了/etc/yum.repos.d/CentOS-Base.repo中的repo id为的base有些,其他的repo id都是无效,因为其他的repo id对应的enabled=0

实验3
需要改实验2中pgdg-redhat-all.repo内容,把centosplus修改成pgdg12

[root@FRSPGSQLDEV3]# vim /etc/yum.repos.d/pgdg-redhat-all.repo
[root@FRSPGSQLDEV3]# cat /etc/yum.repos.d/pgdg-redhat-all.repo
[pgdg12]
name=PostgreSQL 12 $releasever - $basearch
baseurl=https://download.postgresql.org/pub/repos/yum/12/redhat/rhel-$releasever-$basearch
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG

[pgdg12]
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

[root@FRSPGSQLDEV3]# yum repolist all
Loaded plugins: fastestmirror
Repository centosplus is listed more than once in the configuration
Loading mirror speeds from cached hostfile
 * base: la.mirrors.clouvider.net
repo id                    repo name                       status
base/7/x86_64              CentOS-7 - Base                 enabled: 10,072
centosplus/7/x86_64        CentOS-7 - Plus                 disabled
pgdg12/7/x86_64            PostgreSQL 12 7 - x86_64        disabled
repolist: 10,072

结果:只显示了/etc/yum.repos.d/CentOS-Base.repo中的repo id为的base有些,其他的repo id都是无效,因为其他的repo id对应的enabled=0

实验4
pgdg-redhat-all.repo添加内容[updates],如下

[root@FRSPGSQLDEV3]# vim /etc/yum.repos.d/pgdg-redhat-all.repo
[root@FRSPGSQLDEV3]# cat /etc/yum.repos.d/pgdg-redhat-all.repo
[pgdg12]
name=PostgreSQL 12 $releasever - $basearch
baseurl=https://download.postgresql.org/pub/repos/yum/12/redhat/rhel-$releasever-$basearch
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG

[pgdg12]
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

[root@FRSPGSQLDEV3]# yum repolist all
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: repos.lax.layerhost.com
 * updates: mirror.sfo12.us.leaseweb.net
repo id                    repo name                       status
base/7/x86_64              CentOS-7 - Base                 enabled: 10,072
centosplus/7/x86_64        CentOS-7 - Plus                 disabled
pgdg12/7/x86_64            PostgreSQL 12 7 - x86_64        disabled
updates/7/x86_64           CentOS-7 - Updates              enabled:  4,691
repolist: 14,763

结果:只显示了/etc/yum.repos.d/CentOS-Base.repo中的repo id为的base有效和/etc/yum.repos.d/pgdg-redhat-all.repo中的updates有效,其他的repo id都是无效,因为其他的repo id对应的enabled=0

实验5,修改pgdg-redhat-all.repo内容中的[pgdg12]中两个enable=1

[root@FRSPGSQLDEV3]# vim /etc/yum.repos.d/pgdg-redhat-all.repo
[root@FRSPGSQLDEV3]# cat /etc/yum.repos.d/pgdg-redhat-all.repo
[pgdg12]
name=PostgreSQL 12 $releasever - $basearch
baseurl=https://download.postgresql.org/pub/repos/yum/12/redhat/rhel-$releasever-$basearch
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG

[pgdg12]
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

[root@FRSPGSQLDEV3]# yum repolist all
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.ocf.berkeley.edu
 * pgdg12: repos.lax.layerhost.com
 * updates: mirrors.oit.uci.edu
repo id                          repo name                       status
base/7/x86_64                    CentOS-7 - Base                 enabled: 10,072
centosplus/7/x86_64              CentOS-7 - Plus                 disabled
pgdg12/7/x86_64                  CentOS-7 - Plus                 enabled:    255
updates/7/x86_64                 CentOS-7 - Updates              enabled:  4,691
repolist: 15,018

结果:
/etc/yum.repos.d/CentOS-Base.repo中的repo id为的base有效
/etc/yum.repos.d/pgdg-redhat-all.repo中的updates有效
/etc/yum.repos.d/pgdg-redhat-all.repo中的repo id为pgdg12但是repo name为CentOS-7 - Plus有效
/etc/yum.repos.d/pgdg-redhat-all.repo中的repo id为pgdg12但是repo name为PostgreSQL 12 7 - x86_64没显示
/etc/yum.repos.d/CentOS-Base.repo中的repo id为的centosplus无效,因为enable=0

实验6,修改pgdg-redhat-all.repo内容中的,再增加一个repo id 为updates,但是repo name为name=CentOS-$releasever - Updates1

[root@FRSPGSQLDEV3]# vim /etc/yum.repos.d/pgdg-redhat-all.repo
[root@FRSPGSQLDEV3]# cat /etc/yum.repos.d/pgdg-redhat-all.repo
[pgdg12]
name=PostgreSQL 12 $releasever - $basearch
baseurl=https://download.postgresql.org/pub/repos/yum/12/redhat/rhel-$releasever-$basearch
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-PGDG

[pgdg12]
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

[updates]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

[updates]
name=CentOS-$releasever - Updates1
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

[root@FRSPGSQLDEV3 yum.repos.d]# yum repolist all
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: mirrors.ocf.berkeley.edu
 * pgdg12: centos.mirror.ndchost.com
 * updates: centos.mirror.ndchost.com
repo id                         repo name                        status
base/7/x86_64                   CentOS-7 - Base                  enabled: 10,072
centosplus/7/x86_64             CentOS-7 - Plus                  disabled
pgdg12/7/x86_64                 CentOS-7 - Plus                  enabled:    255
updates/7/x86_64                CentOS-7 - Updates1              enabled:  4,691
repolist: 15,018

结果:
/etc/yum.repos.d/CentOS-Base.repo中的repo id为的base有效
/etc/yum.repos.d/pgdg-redhat-all.repo中的repo id为updates但是repo name为CentOS-7 - Updates1的有效
/etc/yum.repos.d/pgdg-redhat-all.repo中的repo id为updates但是repo name为CentOS-7 - Updates的没有显示
/etc/yum.repos.d/pgdg-redhat-all.repo中的repo id为pgdg12但是repo name为CentOS-7 - Plus有效
/etc/yum.repos.d/pgdg-redhat-all.repo中的repo id为pgdg12但是repo name为PostgreSQL 12 7 - x86_64没显示
/etc/yum.repos.d/CentOS-Base.repo中的repo id为的centosplus无效,因为enable=0
结论:当两个同样的repo id的出现时,其中的一个可能会不显示文章来源地址https://www.toymoban.com/news/detail-755891.html

到了这里,关于Linux之Yum_rpm_repo详解的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Linux安装软件apt, rpm, yum命令】

    查询、验证、安装、升级、卸载、升级、校验、维护RPM数据库信息等综合管理操作。 rpm命令参数: i:install 安装rpm包 v:显示附加信息,提供更加详细的安装系统 ,可以rpm -ih -vv 显示更加多个详细 h:–hash 显示安装的进度,安装时以#####输出 V:校验,对已经安装的软件进行

    2024年02月02日
    浏览(51)
  • Linux笔记——rpm与yum下载软件命令介绍

    Linux笔记——进程管理Linux笔记——进程管理与网络监控技术讲解Linux笔记——进程管理 Linux笔记——管道相关命令以及shell编程 Linux笔记——磁盘进行分区与挂载介绍 文章目录 系列文章目录 前言 一 RPM介绍 1.1 RPM简单介绍 1.2 RPM命令语法 1.2.1 rpm安装 1.2.2 RPM升级 1.2.3 卸载 1.

    2024年02月04日
    浏览(60)
  • 【Linux】rpm && yum(软件包的安装以及查询)

    应用程序与系统命令的关系 典型应用程序的目录结构 Linux文件 常见的软件包封装类型 Linux内核简介 RPM软件包管理器Red-Hat Package Manager ● 由Red Hat公司提出,被 众多Linux发行版 所采用 ● 建立 统一的文件数据库 ● 详细记录软件包 安装、卸载、升级等变化 信息 ● 自动分析软

    2024年02月04日
    浏览(56)
  • Linux如何将文件或目录打成rpm包? -- fpm打包详解

    👨‍🎓 博主简介   🏅云计算领域优质创作者   🏅华为云开发者社区专家博主   🏅阿里云开发者社区专家博主 💊 交流社区: 运维交流社区 欢迎大家的加入! 🐋 希望大家多多支持,我们一起进步!😄 🎉如果文章对你有帮助的话,欢迎 点赞 👍🏻 评论 💬 收藏

    2024年01月23日
    浏览(43)
  • Linux ❀ Yum源安装RPM包常见问题与解决方法

    404错误多为yum源无法访问导致,检查yum仓库是否配置正确,同时确认baseurl连通性。 yum install为安装包命令,使用yum安装软件包时触发rpm包缺失、进程锁定、未完成事务等多个场景均会导致安装失败错误发生,本章节主要讲述常见安装错误及其解决方法。 使用yum安装软件包时

    2024年02月14日
    浏览(62)
  • Linux:安装jdk的三种方法(yum+rpm+下载包)

    在 linux 上使用 yum 安装是非常粗暴无脑的,但仍然有需要注意的点,不然会掉坑里。这里说一下步骤。 1.1. 执行命令 yum list |grep jdk 查看可安装 jdk 版本 执行成功后可以看见如下的结果: 1.2. 选择一个 java 版本进行安装 这里我们希望安装 java1.8 ,因为我们的机器是64位的,所

    2024年02月03日
    浏览(58)
  • Linux中三种安装形式(rpm、tar/tar.gz(解压缩)、yum)

    1.1 查询 rpm -qa 描述:查询所安装的所有rpm软件包 1.2 卸载 rpm -e 描述:卸载软件包 描述:卸载软件时,不检查依赖 1.3 安装 rpm -ivh 描述:安装rpm包 1.4 案例 1.5 常用 rpm -qa|grep rpm软件包 检查 rpm -e --nodeps rpm软件包版本信息 卸载 rpm -ivh rpm包 安装 2.1 命令 tar -zxvf .tar.gz安装包 tar

    2024年01月21日
    浏览(58)
  • 【Linux的开胃小菜】常用的RPM软件包与YUM仓库包管理器使用

    systemd与System V init的区别以及作用: System V init运行级别 systemd目标名称 systemd目标作用 0 poweroff.target 关机 1 rescue.target 单用户模式 2 multi-user.target 多用户的文本界面 3 multi-user.target 多用户的文本界面 4 multi-user.target 多用户的文本界面 5 graphical.target 多用户的图形界面 6 reboot.t

    2024年02月13日
    浏览(62)
  • 【Linux】三大安装方式(rpm、yum、编译安装),从原理到实操,我来告诉你怎么用!!!

    从程序猿写出源代码到生成一个目标程序,中间经历了(预处理)——(编译)——(汇编)——(链接) 这个过程就是将人类的高级语言翻译成计算机能看懂的二进制语言 那么关于Linux安装,到底安装的是什么? rpm和yum安装的对象——rpm软件包: RPM包是已经编译好并打包

    2024年02月03日
    浏览(50)
  • 【Linux】挂载CentOS 并配置 iso镜像文件为 yum 源

    有时候会遇到内网安装CentOS时,运维人员总是最小化安装,但是当你安装其他应用的时候,例如:MySQL,Nginx, Redis 系统中缺少的依赖很多。目前只有把ISO安装文件作为yum源,这样在安装编译其他的应用的时候,就不会缺少依赖了。 要将 ISO 文件挂载为 YUM 源,您可以按照以下

    2024年02月16日
    浏览(80)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包