conan lock remove¶
$ conan lock remove -h
usage: conan lock remove [-h] [--out-file OUT_FILE]
[-v [{quiet,error,warning,notice,status,verbose,debug,v,trace,vv}]]
[-cc CORE_CONF] [--requires REQUIRES]
[--build-requires BUILD_REQUIRES]
[--python-requires PYTHON_REQUIRES]
[--config-requires CONFIG_REQUIRES]
[--lockfile-out LOCKFILE_OUT] [--lockfile LOCKFILE]
Remove requires, build-requires or python-requires from an existing lockfile.
References can be supplied with and without revisions like "--
requires=pkg/version",
options:
-h, --help show this help message and exit
--out-file OUT_FILE Write the output of the command to the specified file
instead of stdout.
-v [{quiet,error,warning,notice,status,verbose,debug,v,trace,vv}]
Level of detail of the output. Valid options from less
verbose to more verbose: -vquiet, -verror, -vwarning,
-vnotice, -vstatus, -v or -vverbose, -vv or -vdebug,
-vvv or -vtrace
-cc CORE_CONF, --core-conf CORE_CONF
Define core configuration, overwriting global.conf
values. E.g.: -cc core:non_interactive=True
--requires REQUIRES Remove references to lockfile.
--build-requires BUILD_REQUIRES
Remove build-requires from lockfile
--python-requires PYTHON_REQUIRES
Remove python-requires from lockfile
--config-requires CONFIG_REQUIRES
Remove config-requires from lockfile
--lockfile-out LOCKFILE_OUT
Filename of the created lockfile
--lockfile LOCKFILE Filename of the input lockfile
conan lock remove 命令能够从现有的 lockfile 中移除 requires、build_requires、python_requires 或 config_requires 项目。
例如,如果我们有以下 conan.lock
$ cat conan.lock
{
"version": "0.5",
"requires": [
"math/1.0#85d927a4a067a531b1a9c7619522c015%1702683583.3411012",
"engine/1.0#fd2b006646a54397c16a1478ac4111ac%1702683583.3544693"
],
"build_requires": [
"cmake/1.0#85d927a4a067a531b1a9c7619522c015%1702683583.3411012",
"ninja/1.0#fd2b006646a54397c16a1478ac4111ac%1702683583.3544693"
],
"python_requires": [
"mytool/1.0#85d927a4a067a531b1a9c7619522c015%1702683583.3411012",
"othertool/1.0#fd2b006646a54397c16a1478ac4111ac%1702683583.3544693"
]
}
conan lock remove 命令
$ conan lock remove --requires="math/*" --build-requires=cmake/1.0 --python-requires="*tool/*"
将产生以下 conan.lock
$ cat conan.lock
{
"version": "0.5",
"requires": [
"engine/1.0#fd2b006646a54397c16a1478ac4111ac%1702683583.3544693"
],
"build_requires": [
"ninja/1.0#fd2b006646a54397c16a1478ac4111ac%1702683583.3544693"
],
"python_requires": [
]
}
可以指定不同的模式
使用类似
--requires="math/[>=1.0 <2]"的表达式移除版本范围,以及移除特定的修订版本:
--requires=math/1.0#revision移除给定“team”用户的锁定依赖项:
--requires=*/*@team*
conan lock remove 的用途在于
结合
conan lock add,它可以用来强制将锁定的版本降级到旧版本。由于conan lock add总是添加和排序,导致较新的版本具有更高的优先级,因此仅使用add无法强制回退到旧版本。但是,首先使用conan lock remove,然后使用conan lock add,就可以做到这一点。conan lock remove可以解锁某些依赖项,从而生成一个不完整的 lockfile,该 lockfile 可以与--lockfile-partial一起使用,以解析到解锁依赖项的最新可用版本,同时保持其余依赖项的锁定状态。