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.
Beispiel für ein Conan Recipe zum Einbinden der fmt-Bibliothek.
(Bild: Joos / Conan.io)
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
Im ConanCenter stehen für verschiedene Betriebssysteme fertige Pakete und Bibliotheken bereit.
(Bild: Joos / Conan.io)
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:
Stand: 08.12.2025
Es ist für uns eine Selbstverständlichkeit, dass wir verantwortungsvoll mit Ihren personenbezogenen Daten umgehen. Sofern wir personenbezogene Daten von Ihnen erheben, verarbeiten wir diese unter Beachtung der geltenden Datenschutzvorschriften. Detaillierte Informationen finden Sie in unserer Datenschutzerklärung.
Einwilligung in die Verwendung von Daten zu Werbezwecken
Ich bin damit einverstanden, dass die Vogel IT-Medien GmbH, Max-Josef-Metzger-Straße 21, 86157 Augsburg, einschließlich aller mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen (im weiteren: Vogel Communications Group) meine E-Mail-Adresse für die Zusendung von Newslettern und Werbung nutzt. Auflistungen der jeweils zugehörigen Unternehmen können hier abgerufen werden.
Der Newsletterinhalt erstreckt sich dabei auf Produkte und Dienstleistungen aller zuvor genannten Unternehmen, darunter beispielsweise Fachzeitschriften und Fachbücher, Veranstaltungen und Messen sowie veranstaltungsbezogene Produkte und Dienstleistungen, Print- und Digital-Mediaangebote und Services wie weitere (redaktionelle) Newsletter, Gewinnspiele, Lead-Kampagnen, Marktforschung im Online- und Offline-Bereich, fachspezifische Webportale und E-Learning-Angebote. Wenn auch meine persönliche Telefonnummer erhoben wurde, darf diese für die Unterbreitung von Angeboten der vorgenannten Produkte und Dienstleistungen der vorgenannten Unternehmen und Marktforschung genutzt werden.
Meine Einwilligung umfasst zudem die Verarbeitung meiner E-Mail-Adresse und Telefonnummer für den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern wie z.B. LinkedIN, Google und Meta. Hierfür darf die Vogel Communications Group die genannten Daten gehasht an Werbepartner übermitteln, die diese Daten dann nutzen, um feststellen zu können, ob ich ebenfalls Mitglied auf den besagten Werbepartnerportalen bin. Die Vogel Communications Group nutzt diese Funktion zu Zwecken des Retargeting (Upselling, Crossselling und Kundenbindung), der Generierung von sog. Lookalike Audiences zur Neukundengewinnung und als Ausschlussgrundlage für laufende Werbekampagnen. Weitere Informationen kann ich dem Abschnitt „Datenabgleich zu Marketingzwecken“ in der Datenschutzerklärung entnehmen.
Falls ich im Internet auf Portalen der Vogel Communications Group einschließlich deren mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen geschützte Inhalte abrufe, muss ich mich mit weiteren Daten für den Zugang zu diesen Inhalten registrieren. Im Gegenzug für diesen gebührenlosen Zugang zu redaktionellen Inhalten dürfen meine Daten im Sinne dieser Einwilligung für die hier genannten Zwecke verwendet werden. Dies gilt nicht für den Datenabgleich zu Marketingzwecken.
Recht auf Widerruf
Mir ist bewusst, dass ich diese Einwilligung jederzeit für die Zukunft widerrufen kann. Durch meinen Widerruf wird die Rechtmäßigkeit der aufgrund meiner Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berührt. Um meinen Widerruf zu erklären, kann ich als eine Möglichkeit das unter https://contact.vogel.de abrufbare Kontaktformular nutzen. Sofern ich einzelne von mir abonnierte Newsletter nicht mehr erhalten möchte, kann ich darüber hinaus auch den am Ende eines Newsletters eingebundenen Abmeldelink anklicken. Weitere Informationen zu meinem Widerrufsrecht und dessen Ausübung sowie zu den Folgen meines Widerrufs finde ich in der Datenschutzerklärung.
In macOS lässt sich der Paketmanager auch mit Homebrew installieren:
brew update brew install conan
Im ConanCenter findet sich mit „fmt“ beispielsweise eine quelloffene Formatierungsbibliothek als Alternative zu C‘s stdio und den iostreams von C++.
(Bild: Joos / Conan.io)
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.