2016-04-22 26 views
2

Ich versuche, ein Dummy-Paket mit equivs zu erstellen, die das-Paket für apt bietet. Das Problem besteht darin, dass die meisten Abhängigkeitsprobleme gelöst werden, mit Ausnahme eines Pakets, das eine Versionsanforderung hat. Meine Frage ist: Wie kann ich die Versionsnummer im Feld Provides angeben?Äquivalent Dummy-Paket Versionsnummer Syntax

Ich habe folgendes:

Erstellen einer Steuerdatei mit

equivs-control python-oauthlib 

bearbeiten die Steuerdatei wie folgt:

Section: misc 
Priority: optional 
Standards-Version: 3.9.2 

Package: python-oauthlib-dummy 
Version: 0.6.1 
Provides: python-oauthlib 
Architecture: all 
Description: Dummy Python OAuthlib package 

das Paket Körperbau:

equivs-build python-oauthlib 

Installieren Sie das Paket Alter:

sudo dpkg -i python-oauthlib-dummy_0.6.1_all.deb 

Vor der Installation des Pakets führte apt-get in den folgenden Fehler:

The following packages have unmet dependencies: 
oneconf-common : Depends: python-oauthlib but it is not installed 
python-oneconf : Depends: python-oauthlib but it is not installed 
python-piston-mini-client : Depends: python-oauthlib but it is not installed 
python-ubuntu-sso-client : Depends: python-oauthlib (>= 0.3.5) but it is not installed 

das Paket nach der Installation alle Abhängigkeitsfehler verschwinden, mit Ausnahme der zuletzt:

The following packages have unmet dependencies: 
python-ubuntu-sso-client : Depends: python-oauthlib (>= 0.3.5) 

Das macht Sinn, weil ich die Versionsnummer für Provides in der Steuerdatei nicht angegeben habe. Was ist die richtige Syntax dafür? Ich versuchte verschiedene Dinge, wie Provides: python-oauthlib-0.6.1, Provides: python-oauthlib-0.6-1, Provides: python-oauthlib-0.6, Provides: python-oauthlib (= 0.6.1) aber nichts hat funktioniert. Stattdessen wurden alle ursprünglichen nicht erfüllten Abhängigkeiten mit einer zusätzlichen W: Ignoring Provides line with DepCompareOp for package python-oauthlib von apt zurückgegeben.

Ich weiß, dass die Versionsnummer des Dummy-Pakets selbst nicht verwandt ist, ich wählte nur die gleiche Nummer, um zu verdeutlichen, dass es ein Dummy ist, der diese Version bereitstellt.

Hintergrund: python-oauthlib-0.6.1 wurde zu einem bestimmten Zeitpunkt von apt installiert. Ich wollte python-twitter mit pip installieren. Dies erfordert OAuthlib 1.0.3. Pip konnte oauthlib nicht aktualisieren, weil es dem Betriebssystem gehörte. Daher wollte ich oauthlib in apt mit apt-get remove python-oauthlib deinstallieren. Das hat nicht funktioniert, weil eine Anzahl von Paketen von oauthlib über eine Kette anderer Abhängigkeiten abhängt, einschließlich software-center und andere, die ich nicht deinstallieren wollte. Daher habe ich das Paket mit dpkg -r --force-depends entfernt. Dies erlaubte mir, oauthlib und python-twitter in pip erfolgreich zu installieren, aber es machte unbrauchbar aufgrund der fehlenden Abhängigkeiten. Um dies zu beheben, versuche ich nun das Dummy-Paket zu installieren.

+0

Per https://www.debian.org/doc/debian-policy/ch-controlfields.html, das 'Provides' Feld tragen keine Versionsnummer. Das heißt, ich habe das gleiche Problem ... – Jan

Antwort