gpt4 book ai didi

linux - 为什么我在 Yocto 中的尝试安装之间出现/etc/cups 冲突?

转载 作者:太空狗 更新时间:2023-10-29 11:41:35 24 4
gpt4 key购买 nike

我有一个编译打印机驱动程序的方法,并且有几行简单的代码可以在 do_install 中运行。

do_install() {
install -d ${D}${libdir}/cups/filter
install -m 755 ${B}/src/rastertoprinter ${D}${libdir}/cups/filter/
install -d ${D}${sysconfdir}/cups/ppd
install -m 755 ${B}/../rastertoprinter/printer_name.ppd ${D}${sysconfdir}/cups/ppd/
}

为了编译源代码,我在 cups 上有一个 DEPENDS,在 cups 上也有一个 RDEPENDS,因为操作系统当然需要安装 cups 才能打印。

打印机驱动程序未公开,因此我已将其重命名为 rastertoprinter 并更改了我的路径名。

本质上,我需要简单地创建或确保目录/usr/lib/cups/filter 存在,然后将 rastertoprinter 程序复制到那里。我还需要创建或确保目录/etc/cups/ppd 存在并将 .ppd 文件复制到该目录中。

前两行运行正常,但第三行抛出以下错误:

file /etc/cups conflicts between attempted installs of printername-r0.corei7_64 and cups-2.2.2-r0.corei7_64
file /etc/cups/ppd conflicts between attempted installs of printername-r0.corei7_64 and cups-2.2.2-r0.corei7_64

我不明白为什么这两个食谱都不能创建这个目录并在里面放东西?奇怪的是,我能够执行第一个/usr/lib/cups/filter 目录,但没问题。

最佳答案

原来的问题是 Yocto 中要打包的每个文件也会为每个文件的每个父文件生成一个 %dir。我们不想拥有一个属于另一个包的目录,所以如果你将它添加到你的食谱中:

DIRFILES = "1"

这会导致你的包不拥有你打包的文件的父目录。

这将生成一个没有 %dir 条目的 rpm 规范文件。

关于linux - 为什么我在 Yocto 中的尝试安装之间出现/etc/cups 冲突?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44762430/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com