2017-06-26 106 views
1

我有一個食譜編制的打印機驅動程序,並有幾個簡單的線條在do_install運行。爲什麼我在Yocto嘗試安裝時遇到/ etc/cups衝突?

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/ 
} 

編輯關於杯我有源杯A依賴和也是一個RDEPENDS作爲操作系統需要安裝打印過程中的杯具。

打印機驅動程序不公開,所以這樣我已經重新命名爲rastertoprinter和改變了我的路徑名。

基本上我需要簡單地創建或確保目錄/ usr/lib中/杯/過濾器存在,並複製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目錄,雖然很好。

回答

1

原來的問題是包裝在Yocto每個文件還將爲每個文件的每一父%dir。我們不希望自己被另一個軟件包所擁有的目錄,因此,如果您添加到您的食譜:

DIRFILES = "1" 

它會使你的包不是文件本身的父目錄打包。

,這將產生不%dir條目一個rpm spec文件。

相關問題