openEuler用户软件仓(EUR)介绍

news2024/11/17 10:59:09

什么是 EUR

EUR(openEuler User Repo)是openEuler社区针对开发者推出的个人软件包托管平台,目的在于为开发者提供一个易用的软件包分发平台。

链接:https://eur.openeuler.openatom.cn/

为什么我们需要 EUR

在操作系统的世界,软件包是一等公民,软件包的丰富程度和是否易于分发,一定程度上决定了操作系统用户和开发者的使用体验,试想一下这种情况:

  1. 开发者希望自己尚在开发中的软件能够尽早的与openEuler社区持续的集成并发布给自己的用户进行测试;

  2. 在引入新包时,发现其多个依赖的软件包在社区中不存在,极大增加开发者的工作量;

  3. 用户期望在openEuler 20.03上使用/集成某个软件包的nightly或unstable版本。

针对上面的场景,在当前openEuler社区的基础设施中,还没有太好的开箱即用的方案。仔细分析上面的场景,我们发现社区存在着如何平衡软件包丰富和软件包质量的问题,在和社区TC委员讨论后,我们形成了下述的软件包分层的思路:

图片

core packages: openEuler社区的开发者,sig组维护着的一组核心软件包

extra packages:类似EPOL或oepkgs等尚不满足社区质量要求,但仍然处于可用阶段的软件包

developer packages(EUR):完全由开发者或个人维护并保证质量的软件仓库,不需要遵循openEuler社区软件包的大部分约束和质量要求

我们需要一个什么样的 EUR

基于上述的软件包分层模型,不难看出,对于developer packages,社区需要一个简单轻量的对开发者友好的软件包分发平台。

按照以上描述,我们将这个平台命名为EUR(openEuler User Repo)。我们发现针对EUR的需求和copr的功能十分类似,在和copr的开发团队进行沟通后,我们发现copr社区的目标和我们较为一致,并且十分open,在提交一系列pr并得到快速合并后,我们打算使用copr构建我们第一版的EUR系统。

EUR的定位

我们将EUR定位为开发者的个人仓库,类似于ubuntu的PPA,fedora的COPR,这个服务专注于为开发者提供便利,EUR支持自动从pypi,rubygem(未来可以扩展更多的方式)打包软件包,支持通过webhook自动触发持续构建,后续还将支持一键将个人仓库的软件包引入社区。

谁适合使用EUR

如果您:

想快速从pypi/rubygem上打包软件包;

想为已发布的openEuler版本添加最新的软件包或变体版本;

想为还在开发中的软件提供持续与openEuler集成的仓库;

只是将某个软件打包成rpm包供自己使用;

在将软件包贡献到社区前,测试验证自己的spec文件是否正确。

我们都建议您使用EUR实现快速构建独立的软件包仓库,分发您的软件包。

地址:https://eur.openeuler.openatom.cn/

联系我们

如果您在使用过程中有任何意见或建议,可以给我们发邮件:infra@openeuler.org,同时也可以在社区论坛https://forum.openeuler.org/ 中交流讨论。

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

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

相关文章

数据库基本功之复杂查询-多表连接

1. 简单查询的解析方法 全表扫描:指针从第一条记录开始,依次逐行处理,直到最后一条记录结束;横向选择纵向投影结果集 2. 多表连接 交叉连接(笛卡尔积) 非等值连接 等值连接 内连 外连接(内连的扩展,左外,右外,全连接) 自连接 自然连接(内连,隐含连接条件,自动匹配连接字段) …

以创作之名致敬女性开发者

作者简介:一名云计算网络运维人员、每天分享网络与运维的技术与干货。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 前言 在昨天的2023年3月8日,是咱们女性朋友的节日妇女节,本章将会…

腾讯云GPU游戏服务器/云主机租用配置价格表

用于游戏业务的服务器和普通云服务器和主机空间是不同的,游戏服务器对于硬件的配置、网络带宽有更大的要求,一般游戏服务器根据不同的配置和适用场景会有十几元一小时到几十元一小时,而且可以根据不同的按量计费。而普通的云服务器可能需要几…

Linux程序替换

Linux程序替换创建子进程的目的?程序替换如何实现程序替换?什么是程序替换?先见一见单进程版本的程序替换程序替换原理多进程版本的程序替换execl函数组简易版Shell创建子进程的目的? 目的:为了帮助父进程完成一些特定的任务&…

网络实时变更监控

网络变更监控 未经授权的配置变更会严重破坏业务连续性,这就是为什么检测和跟踪变更是网络管理员的一项关键任务。虽然可以手动跟踪变更,但此方法往往很耗时,并且经常会导致人为错误,例如在跟踪时遗漏了关键网络设备的配置。 要解…

JavaEE简单示例——Spring的控制反转

简单介绍: 在之前的入门程序中,我们简单的介绍了关于Spring框架中的控制反转的概念,这次我们就来详细的介绍和体验一下Spring中的控制反转的理论和实操。 使用方法: 控制反转(IoC)是面向对象编程中的一个…

HTML5 和 CSS3 的新特性

目标能够说出 3~5 个 HTML5 新增布局和表单标签能够说出 CSS3 的新增特性有哪些HTML5新特性概述HTML5 的新增特性主要是针对于以前的不足,增加了一些新的标签、新的表单和新的表单属性等。 这些新特性都有兼容性问题,基本是 IE9 以上版本的浏览器才支持&…

CentOS 部署rocketmq集群

一、rocketmq 概览 1.rocketmq简介 rocketmq是一个队列模型的消息中间件,具有高性能、高可靠、高实时、分布式特点。能够保证严格的消息顺序,提供丰富的消息拉取模式,高效的订阅者水平扩展能力,实时的消息订阅机制。 2.rocketmq结…

项目四:使用路由交换机构建园区网-任务三:配置路由交换机并进行通信测试

配置路由交换机并通信测试1、在RS-1上创建VLAN并配置Trunk接口2、测试通信结果3、配置RS-1的三层路由接口(SVI)1、在RS-1上创建VLAN并配置Trunk接口 进入系统视图,关闭信息中心,重命名为RS-1 system-view undo info-center enab…

day48第九章动态规划(二刷)

今日任务 198.打家劫舍213.打家劫舍II337.打家劫舍III 今天就是打家劫舍的一天,这个系列不算难,大家可以一口气拿下。 198.打家劫舍 题目链接: https://leetcode.cn/problems/house-robber/description/ 题目描述: 你是一个…

synchronized轻量级锁优化

synchronized优化轻量级锁 使用场景 如果一个对象虽然有多个线程访问,但多线程访问时间是错开的,也就是没有竞争,那么可以使用轻量级锁优化; 原理 1、每个线程的栈帧中有锁记录 包括:记录锁对象的地址Object refer…

一次有效沟通的组成

犹记得之前看过一篇文章当中写道 『Tech Lead 作为开发团队的技术负责人,对内对外都起到至关重要的作用。Tech Lead 对外是团队技术能力的展现窗口,需要将团队的技术能力呈现给客户或业务团队。对内他需要和各个角色紧密协作,给非技术角色技术…

50年前的程序员女神,用代码把人类送上月球

1969年7月20日,经过4天飞行的阿波罗11号终于来到了最关键的时刻:降落到月球表面。就在这个时候,飞船计算机突然开始闪烁报警。全球6亿人在观看电视直播,NASA飞行控制中心的气氛让人窒息。人类的首次登月计划面临着艰难的抉择&…

d3绘图笔记

D3绘图笔记 安装与引用 npm install d3 --save-dev import * as d3 from d3; 选择器 d3.select() 可直接接元素名,也可以接属性与类 添加svg标签 this.d3 d3.select(.myd3) let svg this.d3.append("svg") // 添加svg并设置好高宽 .attr("wid…

<Linux>system v通信

前言😃😃😃进程间通信的方式管道 - Linux原生提供SystemV - 多线程单机通信posix - 多线程网络通信这里我们主要是介绍一下SystemV通信方式一、SystemV原理首先我们需要知道通信的本质:多个进程能看到同一个资源,即内存…

如何使用码匠连接 CouchDB

目录 在码匠中集成 CouchDB 在码匠中使用 CouchDB 关于码匠 CouchDB 是一种开源的 NoSQL 数据库服务,它使用基于文档的数据模型来存储数据。CouchDB 的数据源提供了高度可扩展性、高可用性和分布式性质。它支持跨多个节点的数据同步和复制,可以在多个…

mysql数据库之表级锁

表级锁,每次操作锁住整张表。锁定粒度大,发生所冲突的概率最高,并发度最低。应用在myisam、innodb、bdb等存储引擎中。 一、表级锁分类。 1、表锁 2、元数据锁(meta data lock,MDL) 3、意向锁 二、表锁…

yum保留安装包

一. 用downloadonly下载 1.1 处理依赖关系自动下载到/tmp/pages目录,pages这个目录会自动创建 yum install --downloadonly --downloaddir/tmp/pages ceph-deploy注意,如果下载的包包含了任何没有满足的依赖关系,yum将会把所有的依赖关系包下…

微信小程序的代码由哪些结构组成?

小程序官方建议把所有小程序的页面,都存放在pages 目录中,以单独的文件夹存在,如图所示: 其中,每个页面由4 个基本文件组成,它们分别是:js文件(页面的脚本文件,存放页面的数据、事件…

Bean三种实例化方式的底层原理

Bean实例化的三种方式 1,使用类构造器实例化(无参构造函数)2,使用静态工厂方法实例化(简单工厂模式)3,使用实例工厂方法实例化(工厂方法模式) 基于以上的三种方式&…