使用RPM在嵌入式系统映像上安装

时间:2014-12-03 20:40:57

标签: linux embedded rpm yum apt-get

我尝试使用RPM将公共和私有软件安装到最终写入基于Linux的嵌入式系统的启动闪存的磁盘映像中。

我目前的方法是在CentOS 6.5盒子上安装图像(/ mnt / foo)读/写,并使用rpm --installroot = / mnt / foo选项。有两个问题:

  1. - installroot = / mnt / foo似乎chroot到/ mnt / foo,这意味着当post安装脚本运行/ bin / sh(等)时,他们实际上正在使用/ mnt / foo / bin / sh(等等)如果目标体系结构与安装盒相同,那么这种方法是可行的,但如果不是,则会变得非常混乱。我很想知道以前是否有人解决了这个问题。

  2. 在更高级别使用yum或apt-get或???会很高兴处理包依赖项和存储库。 yum是CentOS的明显选择,但它对非本机架构的掌握很弱,可能需要一些黑客攻击。 apt-get在那个部门看起来更有前途,但实际上我从来没有使用它,而我在CentOS 6.5上安装它的尝试让我依赖地狱。

  3. 这似乎是某人之前会遇到的问题,但不幸的是,我能找到的有关RPM和嵌入式系统的所有内容都采用相同的处理器架构。

    总而言之,我需要使用RPM将软件安装到Linux映像,该映像将成为嵌入式系统的启动盘。除了作为嵌入式系统上的映像安装的一部分进行rpm安装(我们的安装时间已经是一个大问题),我几乎可以做任何事情。

    我们将非常感激地收到任何建议。

1 个答案:

答案 0 :(得分:1)

您是否尝试过使用像Jenkins这样的连续构建系统?您可以使用它在您喜欢的任何架构/平台上轻松设置build hosts,只要该平台有一些基本工具(如ssh)。

您可以结合使用其他评论者提到的--installroot标记,以及一些虚拟机设置为Jenkins中的构建主机,以便将RPM安装在特定目录中,同时避免任何平台/体系结构问题。< / p>

我不确定您的具体要求是什么,但是,取决于您愿意走多远...... RPM只是带有标头的压缩CPIO存档,因此您可以使用rpm2cpio管道传输到cpio来提取文件在RPM中。然后,您可以使用rpm -qp --scripts filename.rpm提取安装后脚本并自行运行。当然,这样做的缺点是,首先使用RPM / yum会失去许多好处,例如依赖项的自动安装,等等。