为什么要迁移到另一个系统构建器?
rsdk
是 Radxa 系统构建器的又一次进化。主要目标是为了摆脱 debos
,原因如下:
- (以前)缺乏 ARM64 支持。
- 我们使用 pagefile 来解决 dkms 编译失败的问题,这 需要 KVM 可用.
- Go 模板有待改进。
- 提供的 actions 正在成为限制我们实现预期结果的因素。
除此之外,我们的系统已经发展到了 100 多个存储库,并通过各种 CI/CD 工作流相互连接。从操作的角度来看,我们还需要一个工具来集中管理它们,同时客户还可以使用同样的工具来复制我们的设置,供他们自己使用。
最后,我们想简短地回答一个常见问题“我在哪里可以下载 X 的 SDK”。到目前为止,由于系统设计的复杂性,我们的回答一直是对系统设计的简要说明。我们想做一个更符合客户期望的系统,其中所有相关的 Radxa 源代码只有一个入口。
因此,rsdk
诞生了。
使用 devcontainer 运行 rsdk
请首先按照 Visual Studio Code 的文档进行操作:
然后使用 git
克隆该项目:
git clone --recurse-submodules https://github.com/RadxaOS-SDK/rsdk.git
在 Visual Studio Code 中打开项目。项目的右下角上会弹出一个通知,询问你是否要在 devcontainer 中重新打开。点击是
,然后等待容器设置完成。
常见问题
-
devcontainer 设置暂停,出现
您可能受到 GitHub 的速率限制.
消息您可能受到 GitHub 的速率限制。请遵循输出中列出的说明。
-
devcontainer 启动失败。
请编辑
.devcintainer/devcontainer.json
,并调整runArgs
属性。
使用已发布的 Debian 软件包运行 rsdk
待发布
本地运行 rsdk
This is not a well supported or tested installation method.
When you have issues, please check the source code for up-to-date runtime dependencies.
We do not answer support questions related to this type of installation.
要本地运行 rsdk
,您最好使用 Ubuntu 系统,因为 devcontainer 基于此系统。
请首先在您的系统上安装 devenv
。
可选择安装 direnv
,然后在项目文件夹中运行 direnv allow
来启用它。
然后运行 devenv shell
进入开发 shell。这个 shell 将对您的 PATH 变量进行操作,使开发依赖可用。
如果安装了 direnv
,就不必在进入项目目录使用 SDK 时运行上述命令。不过,direnv
shell 缺少 starship
集成和 rsdk
自动补全,因为它只保存环境变量。
有一些额外的系统配置和软件包 devenv
目前无法管理。它们主要由 rsdk-setup
中的 install_native_dependency
函数负责。
基本用法
rsdk
自带 bash-completion
,可帮助用户使用 CLI。
在终端中输入 rsdk
后,如果没有子命令建议,按两次 Tab 键后,应运行 rsdk shell
进入开发环境。
进入开发环境之后,您可以使用自动补全功能查询支持的命令列表。
Running a command without any argument will display its help text.
从旧工具链迁移
rbuild
rsdk build
是 rbuild
的替代。它使用相同的参数排序,并支持类似的输入值。
如果没有提供套件或版本参数,rsdk build
将使用 src/share/rsdk/configs/products.json
中定义的值,而不是 bullseye
和 cli
。
rsdk build
并不支持所有 rbuild
选项。请查看 help 命令以了解更多详情。
.rbuild-config
文件现在由 devenv.local.nix
取代,选项名称也进行了调整。您可以查看 devenv.local.nix.example
,了解语法。
rbuild json
该子命令被 src/share/rsdk/configs
下的配置文件取代。
rbuild shrink-image
不再需要这个子命令,因为现在图像缩小不再是选项,而是标准操作。
rbuild write-image
rsdk write-image
是 rbuild write-image
的替代。它使用相同的参数顺序。
rsdk
rsdk
命令是常用的 CLI 入口。
在不带任何参数的情况下运行时,将运行 rsdk-tui
。