[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:38545] dpkg-crossによるパッケージのインストールについて



高田と申します。

クロス環境でパッケージのビルドを行っているのですが、
dpkg-crossでクロス開発用パッケージを生成しインストールする場合、
そのパッケージが依存しているパッケージがインストールされなかった
(クロス開発用パッケージとしてはインストールが skipされる)ために、
エラーとなってしまうことがあります。

このような場合、どのように対処するのが望ましいでしょうか?
とりあえず、このような問題の発生するパッケージに対しては
パッケージの依存関係をはずしたソースパッケージをクロス開発用に作成し
リビルドすることで問題を回避していますが、何かよい解決策はないでしょうか?

ご教授よろしくお願い致します。


例えば、flexの場合を例にとり説明すると、
(dpkg-cross 1.14では出力されるメッセージが繁雑なので 1.13.1で説明します)

flexは m4に依存していますが、m4パッケージはヘッダファイルや
ライブラリを含んでいないので、

  # dpkg-cross -i m4_1.4-17_m32r.deb      
  dpkg-cross: package m4 doesn't provide any useful files. Skipping.

となり、m4パッケージはクロス開発環境にはインストールされません。
このため、flexをインストールしようとしても、クロス環境用に生成される
flex-m32r-crossパッケージが m4-m32r-crossに依存していることから

  # dpkg-cross -i flex_2.5.31-16_m32r.deb
  Building flex-m32r-cross_2.5.31-16_all.deb
  Unpacking flex-m32r-cross
  dpkg: dependency problems prevent configuration of flex-m32r-cross:
   flex-m32r-cross depends on m4-m32r-cross; however:
    Package m4-m32r-cross is not installed.
  dpkg: error processing flex-m32r-cross (--install):
   dependency problems - leaving unconfigured
  Errors were encountered while processing:
   flex-m32r-cross
  dpkg -i failed.

となって、インストールに失敗してしまいます。

---
高田 浩和 (Hirokazu Takata)
takata.hirokazu@xxxxxxxxxxx, takata@xxxxxxxxxxxxxx