2012-11-15 5 views
5

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?

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.