oerv-pretask(二)在 openEuler RISC-V 系统上通过 obs 命令行工具 osc,从源代码构建 RISC-V 版本的 rpm 包,比如 coreutils

任务二:在 openEuler RISC-V 系统上通过 obs 命令行工具 osc,从源代码构建 RISC-V 版本的 rpm 包,比如 coreutils

本地host是arch linux系统的manjaro(其他系统的安装命令请自行更换一下,因为是rpm包,所以非常非常非常推荐大家使用rpm系列的系统,会避免非常多的坑,不要像我傻不拉几的,头铁)

首先,我们需要知道什么是obs(open build service)和osc。

obs:简而言之,主要用于编译rpm包,能够针对不同的操作系统及不同的CPU版本的编译安装,可以在线编译也可以在我们的本地host编译。

osc:是OBS的命令工具,即在OBS服务器上安装了osc后,可使用osc完成对包的配置及编译安装等。

我们需要先去这个网站上注册一下账号网址 

(因时间关系,请读者根据链接选择当前最新镜像)

回到任务二,我们注册账号之后,要做的就是在本地配置一下

~/.config/osc/oscrc

[general]
apiurl = https://build.tarsier-infra.isrc.ac.cn/
no_verify = 1
 
[https://https://build.tarsier-infra.isrc.ac.cn/]
user=<你的用户名>
pass=<你的密码>

配置好了之后,我们安装osc和obs-build

yay -S osc-git obs-build-git

arch系列的aur里面有现成的,其他发行版可以手动构建一下

安装osc

git clone https://github.com/openSUSE/osc.git
cd osc
chmod +x setup.py
./setup.py build
sudo ./setup.py install 

安装obs-build

git clone https://github.com/openSUSE/obs-build.git
cd obs-build
sudo make install

安装之后,我们就可以尝试开始构建了

首先通过命令,将obs平台的分支的包拉下来

osc co openEuler:23.09:RISC-V coreutils

这只是拉下来了一个文件_service,我们还需要一行命令来将远程包的其他相关文件一起拉下来

(注意,我们co下来后,会出现对应的文件夹,请进入之后执行下面命令)

osc up -S

 我们拉下来的文件都是_service开头的,这是不可用的,所以我们还需要去掉这些头

rm -f _service;for file in `ls`;do new_file=${file##*:};mv $file $new_file;done

最后,我们可以尝试进行构建rpm包了,输入命令

osc build standard_riscv64 riscv64

最后就是漫长的等待时间(8G的系统盘,花费了4000s大概,其他小伙伴据了解长的有大约一万多秒,看个人机器性能)

最后结束会给出一些路径,和相关构建成功的包。

这里放个图

撒花完结,任务二!!!

最后留下几个我当时遇见的坑,希望能帮到大家

如遇报错,subproject exists but has no meson.build

可能是qemu的版本问题,checkout一下,选择一个稳定版本,我用的8.1.0和8.1.1的

如遇报错,could not map git branch ‘’ to a project

是没有进入到对应的目录进行相应的操作,请仔细观看上面的描述。

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值