228 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			228 lines
		
	
	
		
			4.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								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) 参考
							 |