Conan 备忘清单 === 这个 [Conan](https://conan.io/) 快速参考备忘清单显示了它的常用命令使用清单 入门 --- ### 介绍 Conan 是开源、去中心化和多平台的软件包,管理器来创建和共享您的所有本机二进制文件 - [Conan 官网](https://conan.io/) #### 安装 ```bash $ pip install conan $ pip install conan --upgrade ``` 初始化配置文件 ```bash $ conan config init ``` ### 显示本地客户端配置 Conan 应用配置 ```bash # 查看 Conan 主目录 $ conan config home # 显示部分或全部配置项 $ conan config get [<section>.<config>] # 显示完整的 conan.conf 文件 $ conan config get # 在“日志”部分显示“级别”项 $ conan config get log.level ``` 配置文件的内容(例如默认值) ```bash $ conan profile show default ``` 远程存储库 ```bash $ conan remote list ``` ### 添加和修改配置 安装配置集合 ```bash $ conan config install <url> $ conan config install ./my_config.conf ``` 更改单个配置值 ```bash $ conan config set general.revisions_enabled=1 ``` <!--rehype:className=wrap-text --> 添加遥控器 ```bash $ conan remote add my_remote <url> ``` 提供远程凭据 ```bash $ conan user -p <password> -r my_remote <username> ``` <!--rehype:className=wrap-text --> ### 显示来自 inspect 或 reference 的信息 显示 `conanfile.py` 的属性 ```bash $ conan inspect <path> -a <attribute> ``` 显示 `conanfile.py` 的内容以供参考 ```bash $ conan get <reference> ``` 显示 `recipe` 的依赖关系图信息 ```bash $ conan info <path_or_reference> ``` ### 搜索包 <!--rehype:wrap-class=col-span-2--> 在远程搜索包 ```bash # 列出本地缓存中的包名称 $ 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 ``` ### 安装包 <!--rehype:wrap-class=row-span-2--> 仅使用参考安装包 ```bash $ conan install <package_reference> ``` 从 conanfile 安装软件包列表 ```bash $ cat conanfile.txt [requires] zlib/1.2.11 $ conan install <path_to_conanfile> ``` 通过生成器在构建系统中使用包 ```bash $ cat conanfile.txt [requires] zlib/1.2.11 [generators] cmake_find_package msbuild make ``` 安装需求并生成文件 ```bash $ mkdir build && cd build $ conan install .. ``` 运行您的构建系统(以下之一) ```bash $ cmake .. && cmake --build . $ msbuild myproject.sln $ make ``` ### 创建一个包 从模板创建配方 (conanfile.py) ```bash $ conan new <reference> -m <template> ``` 只需将配方导出到本地缓存 ```bash $ conan export <path_to_conanfile> ``` 从 recipe 为一种配置创建包 也隐含地安装和导出步骤 ```bash $ conan create . -pr <profile> ``` ### 检查包裹 完整打印包装配方: ```bash $ conan get <package>/<revision>@<user>/<channel> $ conan get boost/1.74.0 ``` <!--rehype:className=wrap-text --> 包装配方的打印属性: ```bash $ conan inspect <package>/<revision>@<user>/<channel> $ conan inspect boost/1.74.0 ``` <!--rehype:className=wrap-text --> 请参阅 [conan get](https://docs.conan.io/en/latest/reference/commands/consumer/get.html) 和 [conan inspect](https://docs.conan.io/en/latest/reference/commands/misc/inspect.html) 参考 ### Lockfiles 创建一个锁文件: ```bash $ conan lock create <package>/conanfile.py --user=<user> --channel=<channel> ``` <!--rehype:className=wrap-text --> 在 `conan create` 或 `conan install` 期间使用 lockfile: ```bash $ conan <command> --lockfile conan.lock ``` 查看 [conan lock](https://docs.conan.io/en/latest/reference/commands/misc/lock.html) 参考