Open-Source-Paketmanager Conan auf Python-Basis C- und C++-Bibliotheken mit Conan paketieren
Anbieter zum Thema
Beim Paketieren von Code in C oder C++ für verschiedenen Betriebssysteme sollte der verwendete Paketmanager deren Besonderheiten kennen und adressieren. Die Open-Source-Lösung Conan ist dazu in der Lage. Wir zeigen die Möglichkeiten in diesem Beitrag.

Conan ist ein mit Python entwickelter Paketmanager, der C- und C++-Programme paketieren kann. Das Open-Source-Tool steht unter der MIT-Lizenz zur Verfügung. Der Paketmanager ist darüber hinaus dezentral und plattformübergreifend verfügbar. Interessant ist die quelloffene Lösung vor allem dann, wenn Entwickler eine Anwendung mit C und C++ für verschiedene Betriebssystem zur Verfügung stellen wollen.
Conan kann mit Windows, Linux, macOS, FreeBSD, Android und iOS umgehen und Programme oder Apps für mobile Systeme paketieren. Das Tool arbeitet unter anderem mit Visual Studio, CMake, Makefiles und SCons zusammen. Hier kann Conan zum Beispiel viele Konfigurationsparameter automatisiert übergeben. Auch andere Build-Systeme lassen sich anbinden, in diesem Fall ist die automatische Übergabe von Parameter nicht allerdings nicht möglich, wohl aber das Paketieren.
Natürlich lassen sich die Parameter manuell übergeben. Hier spielt es eine sehr große Rolle, dass die entsprechenden Parameter in korrekter Form an das Build-System übergeben werden. Generell ist das Tool vergleichbar mit NuGet, npm oder JavaScript. Grundsätzlich kann Conan auf allen Systemen zum Einsatz kommen, die auch Python unterstützen. Die Installation erfolgt schlussendlich auch zusammen mit Python, zumindest in den meisten Fällen.
Conan steht als kostenlose Open-Source-Lösung zur Verfügung
Conan findet sich auch bei GitHub. Developer können ihre Pakete auf ihren eigenen Servern hosten. Der Paketmanager integriert mit Artifactory und Bintray. Durch die Unterstützung von zahlreichen Plattformen, zum Beispiel Docker und WSL, lässt sich Conan in nahezu allen Szenarien einsetzen, in denen Code mit C und C++ zum Einsatz kommt.
Der Paketmanager kann Binärdateien verwalten. Diese lassen sich für nahezu jede Plattform erstellen, hochladen und herunterladen. Ebenfalls möglich ist das Cross-Kompilieren. Das spart einiges an Zeit bei der Entwicklung und bei Continuous Integration (CI).
Zentrales Repository mit Conan umsetzen
Conan verteilt Pakete nach dem Client-Server-Prinzip. In Conan steht mit dem ConanCenter ein zentrales Repository zur Verfügung. Dieses umfasst unterschiedliche Open-Source-Bibliotheken sowie vorkompilierte Binärpakete für gängige Compiler. Conan bietet eine Integration mit der JFrog Artifactory. Diese enthält die kostenlose Artifactory Community Edition für Conan. Dadurch können Entwickler ihre eigenen Pakete auf eigenen Servern erstellen.
Entwickler erstellen die Pakete mit einem Build-System, das Conan unterstützt. Diese haben wir in diesem Beitrag bereits aufgelistet. Sobald die Pakete auf den Servern zur Verfügung stehen, lassen sie sich verteilen. Conan-Clients laden die Pakete von einem der integrierten Server herunter. Conan-Pakete beschreiben in einem Rezept, wie eine Software zu paketieren ist.
Kommt eines der von Conan direkt unterstützten Build-Systeme zum Einsatz (Visual Studio, CMake, Makefiles, Scons), lassen sich die Rezepte schnell schreiben. Die Rezepte und deren Syntax finden sich ebenfalls im ConanCenter. Hierüber können Entwickler ihre eigenen Rezepte auf Basis bereits vorhandener Rezepte erstellen.
Für ein Paket kann Conan beliebige Binärpakete der unterschiedlichen Plattformen nutzen und auf diese zugreifen. Dazu gehören alle relevanten Betriebssysteme für PCs, Server oder auch mobile Endgeräte. Wenn auf einem Conan-Server ein Binärpaket vorhanden ist, das für eine Zielplattform zum Einsatz kommen soll, erspart sich Conan die Neuerstellung. Nur wenn keine Binärpakete auf dem Server vorliegen, erstellt Conan auf Anforderung ein neues Paket. Dieses steht dann dafür aber wiederum in Zukunft zur Verfügung, wenn Conan dieses Binärpaket für zukünftige Bereitstellungen braucht.
Conan in der Praxis: Installieren mit Python
Conan lässt sich auf Rechnern am einfachsten über den Python-Paketmanager pip installieren. Für den Betrieb von Conan ist daher Python 3 (inklusive pip) notwendig. Um Conan zu installieren, reicht der Befehl „pip install conan“. Auf Debian und Ubuntu ist es beispielsweise möglich, Conan inklusive Python mit den folgenden Befehlen installiert werden:
sudo apt install python3 python3-pip
sudo pip3 install conan
In macOS lässt sich der Paketmanager auch mit Homebrew installieren:
brew update
brew install conan
Anschließend lassen sich bereits Pakete erstellen. In der Dokumentation zu Conan sind dazu die notwendigen Anleitungen zu finden. Auf der Conan-Seite „Getting Started“ stehen dazu auch Beispielprojekte zur Verfügung, das Beispiel-Repository von Conan auf GitHub enthält entsprechende Downloads. Das gängigste Beispiel ist ein MD5-Calculator. Dieses Beispiel lässt sich mit dem folgenden Befehl herunterladen:
git clone https://github.com/conan-io/examples.git && cd examples/libraries/poco/md5
Nach der Installation stehen die Optionen mit dem Befehl „conan“ zur Verfügung. Für die einzelnen Parameter von Conan zeigt der Befehl auch eine Information zu den Funktionen des Paketmanagers an.
(ID:48733876)