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でなければなりません。