Conan 备忘清单

这个 Conan 快速参考备忘清单显示了它的常用命令使用清单

入门

介绍

Conan 是开源、去中心化和多平台的软件包,管理器来创建和共享您的所有本机二进制文件

安装

1
2
$ pip install conan
$ pip install conan --upgrade

初始化配置文件

1
$ conan config init

显示本地客户端配置

Conan 应用配置

1
2
3
4
5
6
7
8
# 查看 Conan 主目录
$ conan config home
# 显示部分或全部配置项
$ conan config get [<section>.<config>]
# 显示完整的 conan.conf 文件
$ conan config get
# 在“日志”部分显示“级别”项
$ conan config get log.level

配置文件的内容(例如默认值)

1
$ conan profile show default

远程存储库

1
$ conan remote list

添加和修改配置

安装配置集合

1
2
$ conan config install <url>
$ conan config install ./my_config.conf

更改单个配置值

1
$ conan config set general.revisions_enabled=1

添加遥控器

1
$ conan remote add my_remote <url>

提供远程凭据

1
$ conan user -p <password> -r my_remote <username>

显示来自 inspect 或 reference 的信息

显示 conanfile.py 的属性

1
$ conan inspect <path> -a <attribute>

显示 conanfile.py 的内容以供参考

1
$ conan get <reference>

显示 recipe 的依赖关系图信息

1
$ conan info <path_or_reference>

搜索包

在远程搜索包

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 列出本地缓存中的包名称
$ conan search
$ conan search <package>/<revision>@<user>/<channel> # 输出取决于给出了多少包引用。
# 支持通配符
[--table=file.html] # 将输出保存在 HTML 文件中
[-r=<remote>] # 查看远程存储库(默认为本地缓存)

$ conan search mylib/1.0@user/channel # 显示本地缓存中 mylib/1.0@user/channel 的所有包
$ conan search "zlib/*" -r=all # 在所有远程中显示所有版本的 zlib

$ conan search zlib -r conan-center

# 显示包的修订:
$ conan search <package>/<revision>@<user>/<channel> --revisions

安装包

仅使用参考安装包

1
$ conan install <package_reference>

从 conanfile 安装软件包列表

1
2
3
4
$ cat conanfile.txt
[requires]
zlib/1.2.11
$ conan install <path_to_conanfile>

通过生成器在构建系统中使用包

1
2
3
4
5
6
7
$ cat conanfile.txt
[requires]
zlib/1.2.11
[generators]
cmake_find_package
msbuild
make

安装需求并生成文件

1
2
$ mkdir build && cd build
$ conan install ..

运行您的构建系统(以下之一)

1
2
3
$ cmake .. && cmake --build .
$ msbuild myproject.sln
$ make

创建一个包

从模板创建配方 (conanfile.py)

1
$ conan new <reference> -m <template>

只需将配方导出到本地缓存

1
$ conan export <path_to_conanfile>

从 recipe 为一种配置创建包
也隐含地安装和导出步骤

1
$ conan create . -pr <profile>

检查包裹

完整打印包装配方:

1
2
$ conan get <package>/<revision>@<user>/<channel>
$ conan get boost/1.74.0

包装配方的打印属性:

1
2
$ conan inspect <package>/<revision>@<user>/<channel>
$ conan inspect boost/1.74.0

请参阅 conan getconan inspect 参考

Lockfiles

创建一个锁文件:

1
$ conan lock create <package>/conanfile.py --user=<user> --channel=<channel>

conan createconan install 期间使用 lockfile:

1
$ conan <command> --lockfile conan.lock

查看 conan lock 参考