安裝包時出現奇怪的依賴錯誤
我正在嘗試將我們在 Ubuntu 中製作的應用程序(使用Quickly)安裝到 Raspberry Pi Raspbian。但是,它有一個依賴 python:any (>= 2.7.1-0ubuntu2),儘管它安裝了 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,叫喊
我不知道為什麼會有三個 Python 條目。
**編輯:**我犯了一個錯誤。Pi 執行 Python 2.7.3
這是結果
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 <apandada1@gmail.com> 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
Python 的三個依賴項是:
python (>= 2.7)
python (<< 2.8)
python:any (>= 2.7.1-0ubuntu2)
最終效果是需要 2.7 系列中的 Python(例如,不是 2.6,不是 3.x),但不早於
2.7.1-0ubuntu2
.前兩者合在一起是一種說法,即您需要安裝 Python 2.7,但它可以是 Python 2.7.anything。也就是說,它必須至少為 2.7(第一個要求)但小於 2.8(第二個要求)。(Python 2.8 不存在也永遠不會存在,但它只是在 Debian 使用的版本排序系統中指定邊界的一種方式。)
最後一個可能來自您在建構包期間的附加依賴項。您可能
substvar
在源debian/control
文件中有一個(不是包中的那個,而是源中的那個),它會導致它被自動生成。它與第一個要求部分重疊。從某種意義上說,它沒有其他依賴項那麼嚴格,因為:any
它允許安裝python
來自不同的架構。在另一種意義上它更嚴格,因為它要求 Python 至少是2.7.1-0ubuntu2
. 在那個特定版本中一定有一個錯誤修復,使得 2.7.0 甚至普通的 2.7.1 沒有資格滿足依賴關係。雖然它安裝了 Python 2.8。
不,Python 2.8 不存在。
一定是你安裝的Python版本不符合要求。說什麼
dpkg -l python
?