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.
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