conan.md

March 12, 2022 · View on GitHub

conan 里可以有不同的配置:比如架构、编译器版本等。

Decentralized package manager

Conan 是 C/S 架构。客户端拉取 package,同时上传 packages到不同 server,类似 git 一样。

server 只是存储包,并不会 build 或者 创建包。包是 client 上传的。

Binary management

它可以管理预编译好的binary,有很多平台和配置。这样避免从源码重新编译,节省宝贵时间,同时提高可复现性和跟踪性。

主要是如下的概念:

package: 由 conanfile.py 来定义的。它定义了package的依赖,源码,如何从源码编译二进制等。一个 “conanfile.py” recipe 可以产生任意数量的二进制,给不同数量平台和配置一人一个,包括:操作系统,架构,编译器,构建类型等。

从 server 上安装包时,只会拉取当前平台和配置,而不是所有的。

All platforms,all build systems and compilers

Windows, Linux(Ubuntu, Debian, RedHat,ArchLinux, Raspbian), OSX,FreeBSD 等。它可以在任何支持 Python 的平台上运行。

它支持已有的平台:裸机到桌面,移动设备,嵌入式,服务器,跨平台。