## 入门

### 介绍

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

- Conan 官网

#### 安装

    $ pip install conan
    $ pip install conan --upgrade

初始化配置文件

    $ conan config init

### 显示本地客户端配置

Conan 应用配置

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

配置文件的内容（例如默认值）

    $ conan profile show default

远程存储库

    $ conan remote list

### 添加和修改配置

安装配置集合

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

更改单个配置值

    $ conan config set general.revisions_enabled=1

添加遥控器

    $ conan remote add my_remote <url>

提供远程凭据

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

### 显示来自 inspect 或 reference 的信息

显示 `conanfile.py` 的属性

    $ conan inspect <path> -a <attribute>

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

    $ conan get <reference>

显示 `recipe` 的依赖关系图信息

    $ conan info <path_or_reference>

### 搜索包

在远程搜索包

    # 列出本地缓存中的包名称
    $ 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

### 安装包

仅使用参考安装包

    $ conan install <package_reference>

从 conanfile 安装软件包列表

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

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

    $ cat conanfile.txt
    [requires]
    zlib/1.2.11
    [generators]
    cmake_find_package
    msbuild
    make

安装需求并生成文件

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

运行您的构建系统（以下之一）

    $ cmake .. && cmake --build .
    $ msbuild myproject.sln
    $ make

### 创建一个包

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

    $ conan new <reference> -m <template>

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

    $ conan export <path_to_conanfile>

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

    $ conan create . -pr <profile>

### 检查包裹

完整打印包装配方：

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

包装配方的打印属性：

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

请参阅 conan get 和 conan inspect 参考

### Lockfiles

创建一个锁文件：

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

在 `conan create` 或 `conan install` 期间使用 lockfile：

    $ conan <command> --lockfile conan.lock

查看 conan lock 参考