PostgreSQL在openEuler上本地yum不能安装而网络yum却可以的原因分析

news2024/9/27 23:24:23

作者:IT圈黎俊杰

  PostgreSQL是国外著名的开源数据库,openEuler是国内的开源操作系统品牌,当前PostgreSQL对openEuler是没有适配认证的,PostgreSQL官方更不存在提供可直接在openEuler操作系统上安装的RPM软件包了。

  在PostgreSQL官网上,有介绍在redhat流派操作系统上可采用yum镜像库的方式安装。笔者在前期写过一篇《国产操作系统openEuler22.03配置yum源》的文章,文中有介绍到yum分成本地yum源和网络yum源两种。经笔者测试,在国产操作系统openEuler上,本地yum源,是无法以yum的方式安装PostgreSQL数据库的,而配置的网络yum源,则可以很轻松的安装上PostgreSQL数据库。openEuler22.03操作系统上安装的PostgreSQL数据库版本为13.3,说明openEuler官方有采用PostgreSQL的源码,在openEuler操作系统上有编译封装PostgreSQL数据库的RPM安装软件包。

  为什么在国产操作系统openEuler上本地yum源无法安装PostgreSQL数据库,而配置的网络yum源却可以安装PostgreSQL数据库呢?今天笔者对其原因进行分析。

  一、openEuler本地yum源无法安装PostgreSQL验证

  (一)本地yum配置情况与可用性验证

  1、openEuler.repo文件本地yum源配置信息

[OS]

name=OS

baseurl=file:///mnt/cdrom

enabled=1

gpgcheck=1

gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-openEuler

[everything]

name=everything

baseurl=file:///mnt/cdrom

enabled=1

gpgcheck=1

gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-openEuler

[EPOL]

name=EPOL

baseurl=file:///mnt/cdrom

enabled=1

gpgcheck=1

gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-openEuler

[debuginfo]

name=debuginfo

baseurl=file:///mnt/cdrom

enabled=1

gpgcheck=1

gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-openEuler

[source]

name=source

baseurl=file:///mnt/cdrom

enabled=1

gpgcheck=1

gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-openEuler

[update]

name=update

baseurl=file:///mnt/cdrom

enabled=1

gpgcheck=1

gpgkey=file:///mnt/cdrom/RPM-GPG-KEY-openEuler

  2、校验本地yum源可用性

  #yum clean all

  #yum makecache

  经校验,本地yum可以正常使用。59MB-134MB/S的Metadata cache created速度,肯定是来自于本地。

  (二)本地yum无法安装PostgreSQL验证

  # yum install -y postgresql-server

[root@pg-p yum.repos.d]# yum install -y postgresql-server

Last metadata expiration check: 0:07:32 ago on Mon 02 Jan 2023 12:46:52 PM CST.

No match for argument: postgresql-server

Error: Unable to find a match: postgresql-server

[root@pg-p yum.repos.d]#

  找不到postgresql-server相关的安装文件。安装不成功。

  二、openEuler网络yum源可以安装PostgreSQL验证

  (一)网络yum配置情况与可用性验证

  1、openEuler.repo文件网络yum源配置信息

[OS]

name=OS

baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/OS/$basearch/

enabled=1

gpgcheck=1

gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/OS/$basearch/RPM-GPG-KEY-openEuler

[everything]

name=everything

baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/everything/$basearch/

enabled=1

gpgcheck=1

gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/everything/$basearch/RPM-GPG-KEY-openEuler

[EPOL]

name=EPOL

baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/EPOL/main/$basearch/

enabled=1

gpgcheck=1

gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/OS/$basearch/RPM-GPG-KEY-openEuler

[debuginfo]

name=debuginfo

baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/debuginfo/$basearch/

enabled=1

gpgcheck=1

gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/debuginfo/$basearch/RPM-GPG-KEY-openEuler

[source]

name=source

baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/source/

enabled=1

gpgcheck=1

gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/source/RPM-GPG-KEY-openEuler

[update]

name=update

baseurl=http://repo.openeuler.org/openEuler-22.03-LTS/update/$basearch/

enabled=1

gpgcheck=1

gpgkey=http://repo.openeuler.org/openEuler-22.03-LTS/OS/$basearch/RPM-GPG-KEY-openEuler

  2、校验本地yum源可用性

  #yum clean all

  #yum makecache

  经校验,网络yum可以正常使用。才100多KB/S的Metadata cache created速度,肯定是来自于网络了。

  (二)网络yum安装PostgreSQL验证

  # yum install -y postgresql-server

Last metadata expiration check: 0:09:43 ago on Mon 02 Jan 2023 01:11:39 PM CST.

Dependencies resolved.

======================================================================

===============================================================

Package Architecture Version Repository Size

======================================================================

===============================================================

Installing:

postgresql-server x86_64 13.3-7.oe2203 update 5.4 M

Installing dependencies:

postgresql x86_64 13.3-7.oe2203 update 1.6 M

Transaction Summary

======================================================================

===============================================================

Install 2 Packages

Total download size: 7.0 M

Installed size: 29 M

Downloading Packages:

(1/2): postgresql-13.3-7.oe2203.x86_64.rpm 82 kB/s | 1.6 MB 00:20

(2/2): postgresql-server-13.3-7.oe2203.x86_64.rpm 88 kB/s | 5.4 MB 01:02

-------------------------------------------------------------------------------------------------------------------------------------

Total 115 kB/s | 7.0 MB 01:02

retrieving repo key for update unencrypted from http://repo.openeuler.org/openEuler-22.03-LTS/OS/x86_64/RPM-GPG-KEY-openEuler

update 17 kB/s | 2.1 kB 00:00

Importing GPG key 0xB25E7F66:

Userid : "private OBS (key without passphrase) "

Fingerprint: 12EA 74AC 9DF4 8D46 C69C A0BE D557 065E B25E 7F66

From : http://repo.openeuler.org/openEuler-22.03-LTS/OS/x86_64/RPM-GPG-KEY-openEuler

Key imported successfully

Running transaction check

Transaction check succeeded.

Running transaction test

Transaction test succeeded.

Running transaction

Preparing : 1/1

Installing : postgresql-13.3-7.oe2203.x86_64 1/2

Running scriptlet: postgresql-server-13.3-7.oe2203.x86_64 2/2

Installing : postgresql-server-13.3-7.oe2203.x86_64 2/2

Running scriptlet: postgresql-server-13.3-7.oe2203.x86_64 2/2

/usr/lib/tmpfiles.d/postgresql.conf:1: Line references path below legacy directory /var/run/, updating /var/run/postgresql → /run/postgresql; please update the tmpfiles.d/ drop-in file accordingly.

Verifying : postgresql-13.3-7.oe2203.x86_64 1/2

Verifying : postgresql-server-13.3-7.oe2203.x86_64 2/2

Installed:

postgresql-13.3-7.oe2203.x86_64 postgresql-server-13.3-7.oe2203.x86_64

Complete!

[root@pg-p yum.repos.d]#

  使用网络yum源,PostgreSQL数据库安装成功。

  三、两种不同结果的原因分析

  上面已经通过实测验证过了,openEuler上本地yum源安装PostgreSQL数据库,提示是找不到相关匹配项的,而使用公网上的网络yum源,却成功安装了PostgreSQL数据库。

  (一)分析本地yum源不能安装的原因

  要通过yum安装,那么yum源里一定要有所有安装软件及其依赖的RPM软件包。先来从不能安装成功的本地yum源里,看是否能够寻找到postgresql-server及相关依赖的RPM包。

  通过对本地yum中使用的openEuler-22.03-LTS-x86_64-dvd.iso文件进行解压缩,进入生成的openEuler-22.03-LTS-x86_64-dvd目录内,能看到的目录结构如下:

  上面内容,如果要与openEuler.repo文件里的配置做匹配的话,匹配的是[OS]库。

  而openEuler.repo文件里配置的[everything]、[EPOL]、[debuginfo]、[source]、[update]这五个库,在openEuler-22.03-LTS-x86_64-dvd里实际都是不存在的。

  在openEuler-22.03-LTS-x86_64-dvd文件里搜索postgresql-server,是搜索不到任何文件的,说明在yum源指向的ISO里不存在postgresql-server相关RPM安装文件,所以是不可能以yum方式成功安装postgresql的。

  (二)分析网络yum源能安装成功的原因

  本文中配置的网络yum源为openEuler官方镜像仓库,那就进入公网的http://repo.openeuler.org/openEuler-22.03-LTS内,其内目录结构如下:

  可以看到在openEuler.repo文件里配置的 [OS]、[everything]、[EPOL]、[debuginfo]、[source]、[update]这六个库,都网络yum源镜像库中都是存在的,最起码可以直接证明,网络yum源所包含的文件比本地yum源(openEuler-22.03-LTS-x86_64-dvd.iso)要丰富得多。

  再来看一下通过网络yum源安装postgresql-server时,是否可以找得到相关的RPM软件包:

  从上图中可以看出,postgresql-server及其依赖的相关RPM包,是从yum源的update库中搜寻到的。

  再来满足一下好奇之心,顺腾摸瓜,进入网络yum源的update库中,搜寻一下postgresql,果然能搜到好多针对openEuler2203编译好的RPM软件包,其中就有postgresql-server-13.3-7.oe2203.x86_64.rpm。

  上面看到的版本号是postgresql-server-13.3,而PostgreSQL数据库软件的最新版是15.1,那我们通过这个yum源可以安装得了postgresql-server-15.1吗?试试看:

  #yum install postgresql-server-15*

[root@pg-p yum.repos.d]# yum install postgresql-server-15*

Last metadata expiration check: 1:56:20 ago on Mon 02 Jan 2023 01:55:22 PM CST.

No match for argument: postgresql-server-15*

Error: Unable to find a match: postgresql-server-15*

  结果显然是不可能的,因为yum源里没有postgresql-server-15*相关的RPM软件包呀。

  (三)对比本地与网络yum源的库存储差异

序号

库名

本地yum源中

是否存在

网络yum源中

是否存在

1

OS

2

everything

3

EPOL

4

debuginfo

5

source

6

update

  原因分析结论:

  通过实际验证过程中的输出信息,以及将openEuler.repo配置文件里的配置项,和本地yum源的ISO介质中实际存储内容,以及进入网络yum源中的各个库中展开研究与对比分析,得出结论为:

  (1)本地yum源的openEuler-22.03-LTS-x86_64-dvd.iso介质里,只是存放在有[OS]基本库,远远不如网络镜像仓库里的库丰富。openEuler官方把编译生成的postgresql-serve相关RPM包,存放在了[update]库中,这个库没有存入openEuler-22.03-LTS-x86_64-dvd.iso介质里,所以通过本地yum源当然就安装不了postgresql数据库。

  (2)网络yum源的repo.openeuler.org/openEuler-22.03-LTS仓库里,对应openEuler.repo配置文件里的 [OS]、[everything]、[EPOL]、[debuginfo]、[source]、[update]六个库均实际存在,而postgresql-serve相关RPM包就存放在[update]库中,所以通过网络yum源能够成功的安装postgresql数据库。

坚持原创发表,如发现有不妥与不正确之处,欢迎指正。IT圈黎俊杰虚心向大家学习!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/139760.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

56、mysql的作业

作业中要用到的两张表dept,emp,找不到原来的sql语句了,所以只有表的内容 1、选择题 (1)以下哪条语句是错误的? A. SELECT empno, ename name, sal salary FROM emp; B. SELECT empno, ename name, sal AS s…

基于Slimming的MobileNetV3半自动剪枝

本文尝试两种剪枝方法,分别是直接使用NNI工具 以及 通过Slimming方法进行硬编码。 1、剪枝的意义 深度模型落地需要权衡两个核心问题:精度和复杂度。 模型压缩加速,在保持精度基本不变、降低模型计算复杂度。一方面提升模型落地的可能性&a…

SpringBoot+Vue项目毕业论文管理系统

文末获取源码 开发语言:Java 框架:springboot JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7/8.0 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven3.3.9 浏…

使用PowerShell获取Trustedinstaller权限

准备工作: Windows Powershell 版本为 5.0 以上 以管理员身份运行Windows Powershell(在这里可能会遇到运行X64版本而导致后续有些命令无法使用, 所以可以运行X86版本) 安装所需模块 首先在C盘(系统盘)根目录,新建名为 token 的文件夹 接着在Windows Powershell输…

html5语义元素

HTML5 提供了新的语义元素来明确一个Web页面的不同部分: <header><nav><section><article><aside><figcaption><figure><footer><header> <header>元素描述了文档的头部区域&#xff0c;<header>元素主要…

如何停用Sidekiq Uniqueness

背景是这样的&#xff1a; 你有一些Sidekiq的job,并且设置了unique_for&#xff0c;然后系统崩溃了&#xff0c;在你的redis里仍然有这个唯一性的锁&#xff0c;但是job却不见了&#xff0c;导致后面的job也进不来&#xff0c;这个时候需要手动disable这个唯一锁。 官网传送&…

骨传导耳机会伤害耳朵吗、佩戴骨传导耳机有什么好处

首先要明确的告诉大家耳机都对听力/耳朵是一定会有伤害&#xff0c;只不过是程度如何而已。目前来说&#xff0c;同等音量的情况下&#xff0c;对听力损伤最低的就是骨传导耳机。因为它是避开了脆弱的鼓膜&#xff0c;经过骨头向听神经传播声音&#xff0c;这种方法解放了双耳&…

Jvm知识点一(jvm 组成部分)

jvm 主要组成部分以及其作用 jvm 组成部分&#xff08;包含两个子系统和两个组件&#xff09; 两个子系统 Class Loader (类装载器)&#xff1a;根据给定的全限定名类名&#xff08;如java.lang.Object&#xff09;来装载class 文件到Runtime data area(运行时数据区) 中的me…

excel制表基础:规范的制表理念和思路让效率提升 上篇

今天的文章是一篇理论文章&#xff0c;没有函数技巧讲解&#xff0c;没有酷炫图表实例&#xff0c;也没有神奇的VBA教程&#xff0c;如果你想学技巧&#xff0c;那这篇文章不适合你的要求。但是如果你想让自己在使用Excel方面更加地得心应手&#xff0c;能够让构建的表格提高我…

骨传导耳机哪个品牌好?国产骨传导蓝牙耳机排名

骨传导耳机传播声音不用经过耳道的设计&#xff0c;具有保护听力以及佩戴更安全的优势&#xff0c;受到越来越多人的青睐。骨传导耳机的品牌也是越来越多&#xff0c;那么哪些骨传导耳机品牌是最好的呢&#xff1f;下面就给大家分享一下几款好用的骨传导耳机。 1、南卡Runner …

超实用的跨境工具、软件分享!跨境人看过来!

对于跨境电商商家来说&#xff0c;一些常用的工具和网站是必不可少的。实用的工具可以帮助我们选择产品&#xff0c;提高工作效率&#xff0c;规划关键词等等。今天东哥给大家分享几类工具&#xff01; 语言翻译工具 1、deepL 如果还有跨境人在为小语种翻译苦恼的话&#xff0c…

JAVAEE-多线程(2)

线程安全 线程安全的意思技术在多线程的各种随机调度顺序下&#xff0c;代码没有bug,都能够符合预期的方式来执行 线程为什么会不安全&#xff1f;就是在多线程随机调度下出代码出现bug。 有些代码在多线程环境下执行会出现bug&#xff0c;这样的问题就叫做线程不安全。 /*…

海思嵌入式开发-004-Hi3516烧录问题总结

烧录Hi3516DV300小型系统 问题总结一、前言二、使用USB进行烧录① 前提条件② 操作步骤三、运行镜像文件一、前言 Hi3516DV300的镜像烧录通过Winodow环境进行烧录&#xff0c;开发者启动烧录操作后&#xff0c;DevEco Device Tool通过Remote远程模式&#xff0c;将Ubuntu环境下…

罗胖时间的朋友跨年演讲释放的世界氢燃料电池汽车信号

罗胖时间的朋友2022跨年演讲中关于《故乡与魔法》中讲述了关于氢能源相关的问题&#xff0c;日本在2013年就把发展氢能源定为了国策&#xff0c;在日本&#xff0c;关于氢能源相关的专利占世界30%左右&#xff0c;为什么他们就搞不起来&#xff0c;这是个很好的问题&#xff0c…

04-微服务客户端负载均衡器Ribbon、LoadBalance实战

什么是Ribbon 目前主流的负载方案分为以下两种&#xff1a; 集中式负载均衡&#xff0c;在消费者和服务提供方中间使用独立的代理方式进行负载&#xff0c;有硬件的&#xff08;比如F5&#xff09;&#xff0c;也有软件的&#xff08;比如 Nginx&#xff09;。客户端根据自己的…

同样是血氧仪方案,价格怎么相差这么多?

有没有发现最近血氧仪、额温枪、壁挂式测温仪又开始火了&#xff1f;并且市场活跃度越来越高。而作为我们血氧仪方案提供商或者生产企业来说&#xff0c;您是不是和优优一样会时常听到客户发出如下反馈&#xff1a; “我刚问了另外一家&#xff0c;和你这个样子差不多的&#…

智云通CRM:如何应对“我们还要再考虑一下”?

在征求决策层对报价问题的反馈信息时&#xff0c;销售经常会遇到的另一种意见&#xff08;群组决策中最常见的意见&#xff09;是推迟做出决策。这种情况显然是可以理解的&#xff0c;内部决策层认为有必要先私下讨论一番&#xff0c;然后再对你的报价做出答复。毕竟&#xff0…

P2835 刻录光盘

题目描述 在JSOI2005夏令营快要结束的时候&#xff0c;很多营员提出来要把整个夏令营期间的资料刻录成一张光盘给大家&#xff0c;以便大家回去后继续学习。组委会觉得这个主意不错&#xff01;可是组委会一时没有足够的空光盘&#xff0c;没法保证每个人都能拿到刻录上资料的光…

二、入门案例

文章目录二、入门案例1、开发环境2、创建数据库及表2.1 创建表2.2 添加数据3、创建Spring Boot工程3.1 初始化工程3.2 引入依赖3.3 idea中安装lombok插件4、编写代码4.1 配置application.yml4.2 启动类4.3 添加实体4.4 添加mapper4.5 测试4.6 添加日志【尚硅谷】MyBatisPlus教程…

盘点ERP系统应具备的10个核心功能

ERP系统在数据管理解决方案中名列前茅。对于许多企业来说&#xff0c;ERP是数据分析、自动化和全面基础设施整合的理想解决方案。还不知道如何选择正确的ERP系统解决方案&#xff1f;别担心&#xff0c;本文盘点了ERP系统应具备的10个核心功能。 1. 集成 该ERP功能是该解决方…