【问题标题】:How to handle distro versions in Yocto如何在 Yocto 中处理发行版
【发布时间】:2015-08-24 11:47:05
【问题描述】:

我正在寻找一些关于在使用 Yocto 管理发行版时如何正确处理版本控制的建议。

我有几个正在生产的嵌入式系统,必须依靠第三方来应用更新。更新包括通过opkg 安装的一个或多个.ipk 软件包。我无法控制第三方何时应用我发送给他们的更新。这引入了我试图找到解决方案的问题。系统可能处于各种不同的状态,因为某些更新已应用而其他更新未应用。是否有一个通用的解决方案来判断系统处于什么状态?

我不清楚的一个问题是如何确保嵌入式系统在应用进一步更新之前应用了某些更新。 Ubuntu 或 Redhat 等发行版如何处理这个问题?还是他们?

【问题讨论】:

    标签: version versioning software-distribution yocto


    【解决方案1】:

    Ubuntu 和 RedHat 有一个远程存储库。系统有一个已安装软件包的内部列表。当您更新存储库时,您会获得一个新的软件包列表。然后,您可以将此已安装软件包列表与新软件包列表进行比较并安装它们。这基本上是通过 apt-get update && apt-get upgrade 和 yum 等价物完成的。

    Yocto 实际上支持 rpm 和 deb 包格式及其远程存储库。我不熟悉 opkg 以及他们是否可以选择远程存储库。

    当我实施一个系统时,我将其范围缩小到以下选项:

    • 有一个存储库(deb 和 rpm 绝对可以在这里工作)
    • 有版本包
    • 使用图片

    版本包有很大的缺点,因为您必须自行确定要安装哪些包的逻辑。但是您可以要求 version-1.deb 需要 software-v2.deb 和 tool-v1_5.deb。这适用于您自己的软件,但对于整个 Yocto 包堆栈来说是一个很大的手动开销。

    存储库将是通常的方式,例如:apt-get update && apt-get -y upgrade。运行良好且简单,但也缺乏通往新 Yocto 版本的无风险路径。

    图像方式比较复杂,取决于您使用的硬件、图像的大小和图像的传输。如果你有一个巨大的图像和一个缓慢的网络,你可能不想这样做。基本上,您将新图像推送(或根据版本自动拉取)然后将其推送到设备。设备 dd 将其添加到辅助分区,然后您翻转引导加载以使用另一个分区。根据引导加载程序和/或硬件,您可以自动翻转,以防您引导的分区损坏。对远程系统很有帮助。优点是:您还可以轻松升级整个操作系统,而无需手动选择版本。并且您可以进行(自动)故障转移。

    【讨论】:

      猜你喜欢
      • 2021-10-05
      • 2021-08-16
      • 2022-11-11
      • 1970-01-01
      • 2022-12-09
      • 1970-01-01
      • 2020-06-07
      • 2019-04-24
      • 2016-09-28
      相关资源
      最近更新 更多