Zum Beispiel pflege ich eine Anwendung, die libmemcached verwendet. Ich kann es mit libmemcached5 oder libmemcached6 kompilieren, baue auch .deb-Paket, das auf libmemcached5, libmemcached6 oder sogar libmemcached5 | libmemcached6 als Abhängigkeit verweist, aber tatsächlich wird meine Binärdatei nur mit einer von ihnen kompiliert. Was ist der beste Weg, wie ich dieses Problem lösen kann, um mein Paket bereitzustellen, ohne irgendwelche Abhängigkeiten auf der Benutzerseite zu aktualisieren/herabzustufen?Wie erstellt man ein Paket mit verschiedenen Versionen einer Abhängigkeit?
5
A
Antwort
1
Wenn Sie ein Repository verwenden oder wenn mehrere kompilierte Versionen Ihrer App akzeptabel sind, ist es am besten, Ihre App zweimal zu kompilieren, einmal mit libmemcached5 und einmal mit libmemcached6 und separat mit verschiedenen Paketnamen zu verpacken verwenden, und ein virtuelles Paket automatisch die richtigen zu installieren:
Package: myapplication-memchched5
Version: 1.3.17-1
Depends: libmemcached5
Provides: myapplication
Conflicts: myapplication
Replaces: myapplication
und
Package: myapplication-memchched6
Version: 1.3.17-1
Depends: libmemcached6
Provides: myapplication
Conflicts: myapplication
Replaces: myapplication
Jetzt aptitude install myapplication
wählen automatisch entweder myapplication-memchched5
oder myapplication-memchched6
basierend darauf, was noch installiert werden muss.