패키지를 설치할 때 이상한 종속성 오류가 발생합니다.

패키지를 설치할 때 이상한 종속성 오류가 발생합니다.

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, 비명

왜 세 개의 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의 세 가지 종속성은 다음과 같습니다.

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

결과적으로 Python 2.7 시리즈(예: 2.6이나 3.x가 아님)가 필요하지만 2.7.1-0ubuntu2.

처음 두 개를 합치면 Python 2.7이 설치되어 있어야 하지만 Python 2.7은 무엇이든 허용된다는 의미입니다. 즉, 2.7(첫 번째 요구 사항) 이상이어야 하며 2.8(두 번째 요구 사항) 미만이어야 합니다. (Python 2.8은 존재하지도 않고 앞으로도 존재하지 않을 것입니다. 그러나 이는 데비안에서 사용하는 버전 순서 시스템에서 경계를 지정하는 방법일 뿐입니다.)

마지막 것은 패키지 빌드 중에 발생하는 추가 종속성에서 비롯될 수 있습니다. substvar소스 debian/control파일(패키지의 파일이 아니라 소스 파일의 파일)에 자동으로 생성되는 파일이 있을 수 있습니다 . 첫 번째 요구 사항과 부분적으로 겹칩니다. 다른 아키텍처에서 :any설치할 수 있다는 점에서 다른 종속성보다 덜 엄격합니다 . python다른 의미에서는 Python이 최소한 2.7.1-0ubuntu2.

Python 2.8이 설치되어 있어도 마찬가지입니다.

아니요. 파이썬 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이어야 합니다.

관련 정보