1. RSB
RTEMS Source Builder 或 RSB 是一个从源代码构建软件包的工具。 它由 RTEMS 项目用于构建它的编译器和操作系统。 RSB 有助于以受控且可验证的方式从源代码构建软件包所需的详细信息。该工具面向使用 工具 集进行嵌入式开发的软件开发人员。 RSB 不仅限于为 RTEMS 构建工具,您还可以构建裸机开发环境。
嵌入式开发通常使用交叉编译工具链,调试器和调试辅助工具。 我们一起称这些为 工具集 。 RTEMS Source Builder 旨在解决这一特定领域的问题,但不仅限于此。我们欢迎 RSB 用于 RTEMS 之外的项目。
RTEMS RSB 通常用于构建一组工具或 构建集 (build set, bs) 。 构建集 是包的集合,包是特定工具,例如 gcc 或 gdb 或库。 RTEMS Source Builder 可运行在支持运行 Python 的任何主机环境,您可以在其上构建程序包。 RSB 不是某种魔法,它可以采用任何源代码并使其构建。 某个时间点的某个人已经想出如何从源代码构建该包并集成到工具中。
RTEMS Source Builder 已经在下面平台上测试过:
- ArchLinux
- CentOS
- Fedora
- Raspbian
- Ubuntu (包括 XUbuntu )
- Linux Mint
- openSUSE
- FreeBSD
- NetBSD
- MacOS
- Windows
设置您的主机
第 3 章 - 主机 详细信息设置主机。
RTEMS Source Builder 有两种类型的配置数据。 第一个是 构建集 。 构建集 描述了一组包,这些包定义了在为 RTEMS 开发软件时使用的一组工具。 例如,基本的 GNU 工具集是 binutils , gcc 和 gdb ,是嵌入式交叉开发类型项目所需的典型基本工具套件。 第二种类型的配置数据是配置文件,它们定义了如何构建包。 配置文件是基于 RPM 规范文件格式的松散脚本,它们详细说明了构建软件包所需的步骤。 步骤包括 准备 , 构建 和 安装 。 脚本支持宏, shell 扩展,逻辑,包括以及在构建包时有用的许多其他功能。
RTEMS Source Builder 不与任何主机包管理系统交互。 您构建的各种软件包或您可能已安装的主机系统的软件包和软件之间没有自动依赖性检查。 我们假设您正在使用的构建集和配置文件是由开发人员创建的。 支持包配置或 pkgconfg 类型文件,因此您可以检查和使用标准库(如果存在)。 如果您有问题,请在我们的 开发者邮件列表中 询问。
本文档适用于从新用户到经验丰富的 RTEMS 开发人员的一系列用户。 新用户可以按照 “ 安装和 tar 文件 ” 的 “ 快速入门 ” 部分进行操作,以获得工作工具和 RTEMS 。 构建用于发布的二进制工具集的用户可以阅读 “ 安装和 tar 文件 ” 。 想要运行和测试前沿工具或软件包,或者想要更新或扩展 RSB 配置的用户可以阅读其余部分。
错误报告
如果您认为自己发现了问题,请参阅 第 9 章 - 错误,崩溃和构建失败 。
1.1 为什么要从源头构建?
RSB 不是替代商业操作系统或开源操作系统发行版的二进制安装系统。 这些产品和发行版非常重要,是 RSB 工作的基础。 RSB 位于您手动输入命令以构建工具集和诸如 yum 或 apt-get 类的工具之间,用于安装专门为您的主机操作系统制作的二进制包。 手动构建或从远程存储库安装二进制包是有效且可行的替代方案。 RSB 提供了可重复地从源代码构建工具集的特定服务。 该过程将为您提供用于构建工具的源代码以及重建它的能力。
如果您正在开发一个长期维护的系统或产品,或者使用具有较长生命周期且能够从源构建的重要基础设施的关键基础设施,则这一点非常重要。 它将项目与快速变化的主机开发环境隔离开来。 如果你的工具集是二进制的,并且你已经失去了构建它的能力,你也已经失去了一定程度上的开源给你的控制和灵活性。 快速发展的主机环境非常棒。 我们拥有功能强大的多核计算机,具有大量内存和最先进的操作系统,但是您所参与的产品或项目可能需要在这些主机的使用寿命期内维护好。 能够从源代码中构建是此过程重要且关键的部分,因为您可以移动到更新的主机并创建等效的工具集。
从源代码构建可让您控制正在构建的程序包的配置。 如果所有或最重要的相关部分都是从源代码构建的,则可以限制主机变化的暴露程度。 例如, GNU C 编译器( gcc )目前在内部使用许多第三方库( gmp , mpfr 等)。 如果经过验证的编译器为目标处理器生成代码连接的是主机中的动态链接库,则任何主机配置的更改都可能会影响您。 主机软件包管理系统所做的更改与管理的分发有关系,但这可能不会影响到您和您的工具。 从源代码构建工具并控制这些相关部件的特定版本意味着您不会让自己暴露于意外且通常难以解决的问题。 另一方面,您需要确保您的工具可以构建并使用较新版本的主机操作系统。 考虑到像 libc 这样的基于标准的库的稳定性,以及对标准头文件位置的不断改进的支持,这项任务变得越来越容易。
RTEMS Source Builder 旨在进行审查,并可用于项目的验证和验证过程。 如果您的项目正在开发的关键应用程序 , 需要在目标中从源代码跟踪到可执行代码,您可以考虑这些工具以及如何跟踪它们。
如果您的 IT 部门维护所有的计算机,而您没有安装二进制包的适当权限,那么从源代码构建允许您创建自己的工具集,并将其安装在您的主目录下。避免以超级用户的身份安装任何额外的包总是有助于维护安全的计算环境。
1.2 历史
RTEMS Source Builder 是一个独立的工具,基于 Chris Johns 编写的另一个名为 SpecBuilder 的 工具。 SpecBuilder 是在 2010 年左右为 RTEMS 项目编写的工具,它为 Chris 提供了一种在不支持 RPM 的主机上构建工具的方法。 当时 RTEMS 工具维护者只支持 spec 文件,这些文件包含创建合适工具集所需的所有重要配置数据。 可用的 SRPM 和 spec 文件本身很少使用,因为需要使用合适的 rpm 工具。当时,可用 rpm 版本被许多非 RPM 主机所打破并需要不定期的维护。 Chris 决定使用的解决方案是使用 spec 文件并编写一个基于 Python 的工具,该工具解析 spec 文件格式,创建一个可以运行以构建包的 shell 脚本。 该方法证明是成功的,并且 Chris 能够在非 RPM 主机上跟踪 RTEMS 工具的 RPM 版本多年。
SpecBuilder 工具没有构建与 RTEMS 项目无关的工具或包,因为没有合适的 spec 文件可用,因此需要另一个工具。 不从 0 开始, Chris 决定采用 spec 文件格式的解析代码,并构建一个名为 RTEMS Source Builder 的新工具。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- Metasploit 渗透测试手册第三版 第二章 信息收集与扫描(翻译)
- MySQL™ 参考手册(关于本手册)
- LLVM 程序员手册 —— LLVM 4.0 文档(非常非常完整的手册)
- 基于 Laravel、Lumen 框架集成百度翻译、有道翻译、Google 翻译扩展包
- 腾讯发布人工智能辅助翻译 致敬人工翻译
- golang调用baidu翻译api实现自动翻译
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。