パッケージをインストールすると、奇妙な依存関係エラーが発生します。

パッケージをインストールすると、奇妙な依存関係エラーが発生します。

Ubuntuで作成したアプリケーションをインストールしようとしています。早く)をラズベリーパイRaspbianに変換します。しかし、依存関係があります。 python:any (>= 2.7.1-0ubuntu2)RaspbianにはPython 2.8がインストールされていますが、Raspbianではサポートされていません。ただし、アプリケーションはUbuntu 12.04〜15.04で正しく実行されます。

バージョン番号にUbuntuが記載されているからですか?

dpkgにPythonバージョンの依存関係の問題を無視するように強制する以外に、他の回避策はありますか? (これはアプリケーションが破損したパッケージになりますが)

これは制御ファイルの依存関係セクションです(Quicklyによって生成されます)。

次のように異なります。dconf-gsettings-backend | gsettings-backend, python(>= 2.7), python(<< 2.8), python:any(>= 2.7.1-0ubuntu2), gir1.2-glib-2.0, gir1 . 2-gtk-3.0、gir1.2-webkit-3.0、悲鳴

なぜ3つのPythonエントリがあるのか​​わかりません。

編集する:私は間違いを。 Python 2.7.3を実行するPi

これが結果ですdpkg -l python

Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name           Version      Architecture Description
+++-==============-============-============-=================================
ii  python         2.7.3-4+deb7 all          interactive high-level object-ori

これは結果です

    pi@raspberrypi ~ $ dpkg -I up-clock_6.0_all.deb
 new debian package, version 2.0.
 size 734750 bytes: control archive=2246 bytes.
     619 bytes,    12 lines      control              
    3762 bytes,    49 lines      md5sums              
     158 bytes,     9 lines   *  postinst             #!/bin/sh
     253 bytes,    14 lines   *  prerm                #!/bin/sh
 Package: up-clock
 Version: 6.0
 Architecture: all
 Maintainer: Archisman Panigrahi <[email protected]>
 Installed-Size: 1562
 Depends: dconf-gsettings-backend | gsettings-backend, python (>= 2.7), python (<< 2.8), python:any (>= 2.7.1-0ubuntu2), gir1.2-glib-2.0, gir1.2-gtk-3.0, gir1.2-webkit-3.0, yelp
 Section: python
 Priority: extra
 Description: A beautiful Clock, inspired by Ubuntu Touch homescreen, already on your desktop.
  Inspired by Ubuntu Touch homescreen, this clock is able to show you the
  time in a way you never seen before. The "clouds" changes colors and
  sizes automatically awhile showing you the time.



pi@raspberrypi ~ $ apt-cache policy python
    python:
      Installed: 2.7.3-4+deb7u1
      Candidate: 2.7.3-4+deb7u1
      Version table:
     *** 2.7.3-4+deb7u1 0
            500 http://mirrordirector.raspbian.org/raspbian/ wheezy/main armhf Packages
            100 /var/lib/dpkg/status

答え1

Pythonの3つの依存関係は次のとおりです。

  • python (>= 2.7)
  • python (<< 2.8)
  • python:any (>= 2.7.1-0ubuntu2)

その結果、Python 2.7シリーズ(例:2.6や3.xではない)が必要ですが2.7.1-0ubuntu2

最初の2つを組み合わせると、Python 2.7がインストールされているはずですが、Python 2.7は何でも許可されています。つまり、2.7(最初の要件)以上でなければならず、2.8(2番目の要件)未満でなければなりません。 (Python 2.8は存在せず、将来も存在しませんが、これはDebianで使用されているバージョンシーケンスシステムで境界を指定する方法にすぎません。)

最後は、パッケージのビルド中に発生する追加の依存関係に起因する可能性があります。substvarソースdebian/controlファイル(パッケージのファイルではなくソースファイルのファイル)に自動的に生成されるファイルがある可能性があります。最初の要件と部分的に重なります。他のアーキテクチャで:anyインストールできるという点で、他の依存関係より厳しくありません。python別の意味では、Pythonが少なくとも2.7.1-0ubuntu2

Python 2.8がインストールされていても同じです。

いいえ。 Python 2.8は存在しません。

インストールしたPythonのバージョンが要件を満たしていないことを確認してください。何とdpkg -l python

答え2

パッケージ名にコロンを含む依存関係は、次の目的で使用されます。マルチアーキテクチャ。依存関係には次の形式があります(オプションのバージョン仕様を含む)。PACKAGE-NAME:ARCH

アーキテクチャ部分は、anyアーキテクチャ全体で満たすことができる依存関係を表すことができます。これマルチアーキテクチャ仕様python:any例を見てください。 Pythonのほとんどの依存関係はスクリプトを実行するためにのみ必要であるため、Python実行可能ファイルがどのアーキテクチャで使用されるかは重要ではありませんpython:any

Raspbian wheezyには複数のアーキテクチャをサポートするdpkgとAPTのバージョンがありますが、その機能を使用する必要があると思いますdpkg --add-architecture armhf

もちろん、最新バージョンのパッケージがあることを確認してくださいpython。存在しないため、2.8にすることはできません。 Raspbian wheezeでは2.7.3でなければなりません。

関連情報