在Raspberry Pi部署compass-CI

本文详细记录了在Raspberry Pi Lite系统上部署compass-CI时遇到的挑战,包括docker和ruby环境的缺失、依赖安装错误及容器构建问题。作者通过分析错误,逐步解决依赖安装,但最终在容器构建阶段遇到未知问题导致部署失败。
摘要由CSDN通过智能技术生成

摘要

暑期参与了在树莓派上部署compass-CI的开源项目,该项目可被拆解为4个子任务,分别是:

-  测试机pxe启动

服务器端部署

-  串口日志收集

-  power reset

目前已经完成了第一个子任务,现在准备完成第二个子任务:compass-CI的服务器端部署

本文主要描述在服务前端部署过程中遇到的问题以及解决方案。

部署结果:

在基于raspbian的树莓派上部署compass-CI失败!

原因是运行compass-ci/ sparrow /4-docker/buildall脚本构建容器的过程中遇到类似于下图红框中的问题,求助未果卡壳。

为了完成中期报告(留一点时间整理文档)不得不停止在运行raspbian的树莓派上的部署compass-CI的工作,既:宣告第二步“服务器端部署”失败。

注意:本文档只针对使用raspbian lit 系统的树莓。

  1. Compass-CI服务端部署文档阅读

Compass-CI是一个开源项目,可以通过compass-CI/sparrow/install-tiny进行部署,首先阅读其内容针对树莓派的特点进行针对性的修改。

其内容为:

#!/bin/bash

# SPDX-License-Identifier: MulanPSL-2.0+

# Copyright (c) 2020 Huawei Technologies Co., Ltd. All rights reserved.

# For your reference only.

# It's better to run the below scripts step by step.



[[ $CCI_SRC ]] || export CCI_SRC=$(cd $(dirname $(realpath $0)); git rev-parse --sho$

cd $CCI_SRC/sparrow || exit



. 0-package/read-config

0-package/install

1-storage/tiny

1-storage/permission

2-network/br0

2-network/br1

2-network/iptables

2-network/nfs

2-network/cifs

3-code/git

3-code/dev-env

. /etc/profile.d/compass.sh

4-docker/buildall

5-build/ipxe

5-build/os-ready

5-build/register-account

7-systemd/systemd-setup

8-testbox/multi-docker

8-testbox/multi-qemu
    1. 缺少docker和ruby

如果你使用的是Raspberry Pi OS Lite(32-bit)版本的系统,直接运行compass-ci/ sparrow/install-tiny脚本会遇到:缺少docker和rwby环境的问题。

导致这个问题的原因是:

在0-package / install脚本中:

#!/bin/bash

# SPDX-License-Identifier: MulanPSL-2.0+

# Copyright (c) 2020 Huawei Technologies Co., Ltd. All rights reserved.



source /etc/os-release



. $(dirname ${BASH_SOURCE[0]})/os/${ID}



. $(dirname ${BASH_SOURCE[0]})/common

其中的${ID}在树莓派中的raspbian系统下是:raspbian

也就是说,在使用raspbian的树莓派上,这个脚本会去到0-package / os/文件夹下运行名为raspbian的脚本,而在原始的compass-CI的代码中,这个脚本不存在。

0-package / os/中默认的文件有:

 

图 1 XXX/os/文件夹下的默认文件

这意味着,后续的代码会在依赖没有装全的情况下运行!输出了大量异常报错。

从程序正确性的角度考虑,既然在/os/目录下没有找到部署所必须的系统依赖表,程序应该直接报错并终止运行,而不是让后面的代码继续运行,给出大量没有意义又具有迷惑性的输出结果。

因此文末后续的内容都主要是逐个运行脚本,确定到底缺少那些依赖,并在0-package /os/文件下编写raspbian脚本为运行raspbian的树莓派补全缺少的依赖。

由于直接运行compass-ci/ sparr

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值