2017-06-26 28 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/ 
} 

私はOSはもちろん印刷するインストールカップを必要とカップにカップに依存し、またRDEPENDS持ってソースをコンパイルします。

プリンタドライバは公開されていないので、その名前をrastertoprinterに変更し、パス名を変更しました。

本質的には、/ usr/lib/cups/filterディレクトリが作成されていることを確認して、そこにrastertoprinterプログラムをコピーするだけです。/etc/cups/ppdディレクトリが作成されていることを確認し、.ppdファイルをそのディレクトリにコピーする必要があります。

最初の2行は正常に動作が、第三には、次のエラーがスローされます。

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仕様ファイルが生成されます。

関連する問題