OSC简介

2023-10-18 23:09
文章标签 简介 osc

本文主要是介绍OSC简介,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

http://jianlee.ylinux.org/Computer/Server/obs_use_of_osc.html 
参考 简介 简单使用
Webclient 界面 使用 OSC
上传 srpm
osc_add_srpm 批量提交

参考

  • Build Service/Tutorial - openSUSE (中文)

简介

OSC 使用 OBS 系统的一个 Python 语言编写的命令行接口程序,类似与 SVN 的操作,很多时候比起 WebClient 方式访问 OBS 系统更方便。

简单使用

假设我用 jianlee 的用户名在一个 OBS 服务器上注册了帐号,密码是 “ffffff” (六个f)。这里我用自己建立的 OBS 服务器。接口如下:

http://172.16.70.28:81/       webclient 接口
http://172.16.70.28:82/       frontend 接口(即 api)
http://172.16.70.28:83/       download 接口

和 openSUSE 提供的 OBS 服务接口对于关系如下(后面所有实例,如果您想使用 openSUSE 的编译服务,就把对于的接口换成 openSUSE 的):

http://172.16.70.28:81/   ==>   https://build.opensuse.org/
http://172.16.70.28:82/   ==>   https://api.opensuse.org/
http://172.16.70.28:83/   ==>   http://download.opensuse.org

以下示例已我建立的实验环境为基础。

Webclient 界面

用 webclient 创建 project

webclient 方式最简明,所以我们第一步访问 http://172.16.70.28:81/ 。使用 jianlee 用户登录,创建名为 home:jianlee 的 project 。(通常其他不已 home 开头的 project 没有创建权限)

添加一个 Repository (详见创建OBS服务器部分)

在 webclient 上创建软件包,添加文件都很直观,此处不赘述!

使用 OSC

checkout 项目

使用 OSC,首先要 checkout 项目到本地:

# osc checkout home:jianlee
A    home:jianlee
A    home:jianlee/obs-server
# ls
home:jianlee

注意 : 第一次运行 osc 命令,会创建一个默认的 ~/.oscrc 文件,但是默认的 apiurl 参数指向 https://api.opensuse.org ,我们终止 osc 的执行,修改 apiurl 为 "http://172.16.70.28:82/"。再次执行,会询问用户名和密码。输入即可。如果我们再次打开 ~/.oscrc 文件查看,会看到这些信息:

[http://172.16.70.28:82]
user=jianlee
pass=ffffff

现在 osc 当前目录创建了一个 "home:jianlee" 目录,进去看看(因为我刚才在 webclient访问的时候,顺手就创建了一个包 obs-server,所以这里会看到这个目录。:-)):

# cd home\:jianlee/
# ls
obs-server
# find
.
./.osc
./.osc/_project
./.osc/_packages
./.osc/_apiurl
./obs-server
./obs-server/.osc
./obs-server/.osc/_osclib_version
./obs-server/.osc/_project
./obs-server/.osc/_package
./obs-server/.osc/_files
./obs-server/.osc/_apiurl
创建和上传包
osc meta pkg -e project package

进入 "home:jianlee" 目录,

这里的例子以创建一个 obs-server 编译安装依赖的一堆包为例,刚才我在 webclient 里创建了 obs-server 包,编译安装 obs-server 还要其他的包,比如 lighttpd, rails等。

创建一个 lighttpd 包

# osc meta pkg -e home:jianlee lighttpd

现在 osc 会用一个打开编辑器让你编写一个配置文件。选用何种编辑器可以在 osc 配置文件里配置。默认使用 VI。

我编写过的文件内容大致如下:

<package name="lighttpd">
<title>A Light weight web server</title>
<description>
A light weight web server,
obs-server need it.
</description>
<person role="maintainer" userid="jianlee"/>
<person role="bugowner" userid="jianlee"/>
<url>http://www.lighttpd.net/</url>
...
</package>

编辑完保存退出,现在我们还看不到刚才创建的 package,用 osc 更新一下目录:

# osc up

现在可以看到 lighttpd 目录了。

拷贝文件到 package 目录

现在进入 lighttpd 目录,

拷贝一些需要的文件到这个目录里。就是 RPM 编译目录中 SOURCES 和 SPECS 目录中的文件。一定要有这个 spec 文件!

[root@localhost lighttpd]# ls
favicon.ico                      lighttpd-1.4.20-defaultconf.patch  lighttpd-mod_geoip.c
index.html                       lighttpd-1.4.20-initinfo.patch     lighttpd-mod_geoip.txt
light_button.png                 lighttpd-1.4.22.tar.bz2            lighttpd.spec
light_logo.png                   lighttpd-empty.png                 php.d-lighttpd.ini
lighttpd-1.4.18-mod_geoip.patch  lighttpd.logrotate
使用 'osc add' 添加文件到 package 项目

拷贝完文件后,更新这些数据到项目中。

[root@localhost lighttpd]# osc add *
A    favicon.ico
A    index.html
A    light_button.png
A    light_logo.png
A    lighttpd-1.4.18-mod_geoip.patch
A    lighttpd-1.4.20-defaultconf.patch
A    lighttpd-1.4.20-initinfo.patch
A    lighttpd-1.4.22.tar.bz2
A    lighttpd-empty.png
A    lighttpd.logrotate
A    lighttpd-mod_geoip.c
A    lighttpd-mod_geoip.txt
A    lighttpd.spec
A    php.d-lighttpd.ini
提交项目

上面命令 (osc add ) 把这些文件标记为可提交状态。现在提交:

# osc commit

填写完一些信息后,osc 就开始提交了。

* 添加仓库

现在我们要选择仓库

获取仓库列表
# osc ls
GTES:11.3
deleted
home:jianlee
osc 编辑 project 配置
# osc meta prj -e home:jianlee

我们任何时候都可以这样编辑 project 配置

现在的样子:

<project name="home:jianlee">
<title>Jian Lee's home project</title>
<description>Jian Lee's home project on GTES</description>
<person role="maintainer" userid="jianlee"/>
<person role="bugowner" userid="jianlee"/>
<repository name="standard">
<path project="GTES:11.3" repository="standard"/>
<arch>x86_64</arch>
<arch>i586</arch>
</repository>
</project>

注意:repository="standard"用于将来的扩展(仓库的分支)。

上传 srpm

前提:创建好 project,使用 'osc checkout' 更新到本地。假设我们的 project 是 GTES:11:U4,现在处于 GTES:11:U4 目录。

处理一个软件包简单流程是:

  • 创建 package ,编辑它的信息 : osc meta pkg -e GTES:11:U4 package
  • 进入 package 目录: cd package
  • 拷贝需要的文件
  • 添加文件: osc add *
  • 提交:osc commit -as

如果要处理多个软件包就需要再次重复这个流程,可是很多时候我们需要直接提交很多 srpm 包,我们只是想利用 obs 的编译环境编译一下它们,如果按照上面的方法就非常麻烦了。

对于批量提交最主要的麻烦 'osc meta pkg -e' 阶段需要我们手动干预,如果能变成自动的就 OK。

osc 对 meta 命令提供了一个 '-F' 选项可以提交指定的文件为软件包描述信息,我们只要根据每个软件包自身的信息自动创建一个描述文件就可以了,我写了一个脚本完成这个任务。

osc_add_srpm

前提:安装 osc 包,下载 osc_tools 到本地, 处于 project 目录下。

/path/to/osc_add_srpm -u Your_username Your_srpm

批量提交

有了 osc_add_srpm ,批量上传就简单了。

这篇关于OSC简介的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/235686

相关文章

ASIO网络调试助手之一:简介

多年前,写过几篇《Boost.Asio C++网络编程》的学习文章,一直没机会实践。最近项目中用到了Asio,于是抽空写了个网络调试助手。 开发环境: Win10 Qt5.12.6 + Asio(standalone) + spdlog 支持协议: UDP + TCP Client + TCP Server 独立的Asio(http://www.think-async.com)只包含了头文件,不依

业务协同平台--简介

一、使用场景         1.多个系统统一在业务协同平台定义协同策略,由业务协同平台代替人工完成一系列的单据录入         2.同时业务协同平台将执行任务推送给pda、pad等执行终端,通知各人员、设备进行作业执行         3.作业过程中,可设置完成时间预警、作业节点通知,时刻了解作业进程         4.做完再给你做过程分析,给出优化建议         就问你这一套下

容器编排平台Kubernetes简介

目录 什么是K8s 为什么需要K8s 什么是容器(Contianer) K8s能做什么? K8s的架构原理  控制平面(Control plane)         kube-apiserver         etcd         kube-scheduler         kube-controller-manager         cloud-controlle

【Tools】AutoML简介

摇来摇去摇碎点点的金黄 伸手牵来一片梦的霞光 南方的小巷推开多情的门窗 年轻和我们歌唱 摇来摇去摇着温柔的阳光 轻轻托起一件梦的衣裳 古老的都市每天都改变模样                      🎵 方芳《摇太阳》 AutoML(自动机器学习)是一种使用机器学习技术来自动化机器学习任务的方法。在大模型中的AutoML是指在大型数据集上使用自动化机器学习技术进行模型训练和优化。

SaaS、PaaS、IaaS简介

云计算、云服务、云平台……现在“云”已成了一个家喻户晓的概念,但PaaS, IaaS 和SaaS的区别估计还没有那么多的人分得清,下面就分别向大家普及一下它们的基本概念: SaaS 软件即服务 SaaS是Software-as-a-Service的简称,意思是软件即服务。随着互联网技术的发展和应用软件的成熟, 在21世纪开始兴起的一种完全创新的软件应用模式。 它是一种通过Internet提供

LIBSVM简介

LIBSVM简介 支持向量机所涉及到的数学知识对一般的化学研究者来说是比较难的,自己编程实现该算法难度就更大了。但是现在的网络资源非常发达,而且国际上的科学研究者把他们的研究成果已经放在网络上,免费提供给用于研究目的,这样方便大多数的研究者,不必要花费大量的时间理解SVM算法的深奥数学原理和计算机程序设计。目前有关SVM计算的相关软件有很多,如LIBSVM、mySVM、SVMLight等,这些

urllib与requests爬虫简介

urllib与requests爬虫简介 – 潘登同学的爬虫笔记 文章目录 urllib与requests爬虫简介 -- 潘登同学的爬虫笔记第一个爬虫程序 urllib的基本使用Request对象的使用urllib发送get请求实战-喜马拉雅网站 urllib发送post请求 动态页面获取数据请求 SSL证书验证伪装自己的爬虫-请求头 urllib的底层原理伪装自己的爬虫-设置代理爬虫coo

新一代车载(E/E)架构下的中央计算载体---HPC软件架构简介

老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节能减排。 无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事.而不是让内心的烦躁、焦虑、毁掉你本就不多的热情和定力。 时间不知不觉中,快要来到夏末秋初。一年又过去了一大半,成

AI学习指南深度学习篇-带动量的随机梯度下降法简介

AI学习指南深度学习篇 - 带动量的随机梯度下降法简介 引言 在深度学习的广阔领域中,优化算法扮演着至关重要的角色。它们不仅决定了模型训练的效率,还直接影响到模型的最终表现之一。随着神经网络模型的不断深化和复杂化,传统的优化算法在许多领域逐渐暴露出其不足之处。带动量的随机梯度下降法(Momentum SGD)应运而生,并被广泛应用于各类深度学习模型中。 在本篇文章中,我们将深入探讨带动量的随

OpenGL ES学习总结:基础知识简介

什么是OpenGL ES? OpenGL ES (为OpenGL for Embedded System的缩写) 为适用于嵌入式系统的一个免费二维和三维图形库。 为桌面版本OpenGL 的一个子集。 OpenGL ES管道(Pipeline) OpenGL ES 1.x 的工序是固定的,称为Fix-Function Pipeline,可以想象一个带有很多控制开关的机器,尽管加工