Debian

安裝包時出現奇怪的依賴錯誤

  • August 4, 2015

我正在嘗試將我們在 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 &lt;apandada1@gmail.com&gt;
Installed-Size: 1562
Depends: dconf-gsettings-backend | gsettings-backend, python (&gt;= 2.7), python (&lt;&lt; 2.8), python:any (&gt;= 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 (&gt;= 2.7)
  • python (&lt;&lt; 2.8)
  • python:any (&gt;= 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

引用自:https://unix.stackexchange.com/questions/219969