本文档翻译自:https://docs.conan.io/en/latest/reference/commands/consumer/search.html
$ conan search [-h] [-o] [-q QUERY] [-r REMOTE] [--case-sensitive]
[--raw] [--table TABLE] [-j JSON] [-rev]
[pattern_or_reference]
在本地缓存或远程中搜索程序包配方和二进制文件。
如果提供模式,则它将搜索与之匹配的现有包装配方。 如果提供了完整参考(pkg/0.1@user/channel),则将显示该参考的现有二进制软件包。 默认远程将被忽略,如果未指定任何远程,则将在本地缓存中进行搜索。 搜索区分大小写,必须使用确切的大小写。 对于不区分大小写的文件系统(例如Windows),可以使用“–case-sensitive”强制执行区分大小写的搜索。
positional arguments:
pattern_or_reference Pattern or package recipe reference, e.g., 'boost/*',
'MyPackage/1.2@user/channel'
optional arguments:
-h, --help show this help message and exit
-o, --outdated 只显示过时的配方包。此标志只能输入引用搜索使用
-q QUERY, --query QUERY
Packages query: 'os=Windows AND (arch=x86 OR
compiler=gcc)'. The 'pattern_or_reference' parameter
has to be a reference: MyPackage/1.2@user/channel
-r REMOTE, --remote REMOTE
Remote to search in. '-r all' searches all remotes
--case-sensitive 进行区分大小写的搜索。使用它来保证在Windows或其他不区分大小写的文件系统中进行区分大小写的搜索
--raw Print just the list of recipes
--table TABLE 输出带有二进制文件表的html文件。仅对引用搜索有效
-j JSON, --json JSON 将搜索信息写入到的json文件路径
-rev, --revisions 获取引用或包引用的修订列表。
Examples
$ conan search "zlib/*"
$ conan search "zlib/*" -r=conan-center
要在所有定义的远程中搜索配方,请使用-r all
(这仅对搜索配方有效,对二进制文件无效):
$ conan search "zlib/*" -r=all
如果改用完整的包装配方参考,则可以在远程或本地柯南缓存中浏览该配方的现有二进制文件:
$ conan search boost/1.71.0@
Query syntax
允许使用查询语法查找特定的二进制文件,您可以使用AND
和OR
运算符以及带有设置和选项的括号。
$ conan search boost/1.71.0@ -q arch=x86_64
$ conan search boost/1.71.0@ -q "(arch=x86_64 OR arch=ARM) AND (build_type=Release OR os=Windows)"
查询语法允许使用子设置,即使是自定义设置也是如此。 例如:
$ conan search boost/1.71.0@ -q "compiler=gcc AND compiler.version=9"
$ conan search boost/1.71.0@ -q "os=Linux AND os.distro=Ubuntu AND os.distro.version=19.04"
如果您为设置指定查询过滤器,并且包装配方不受此设置的限制,则柯南将找不到这些包装。 例如:
class MyRecipe(ConanFile):
name = "my_recipe"
settings = "arch",
$ conan search my_recipe/1.0@lasote/stable -q os=Windows
除非您指定None
值,否则上面的查询将找不到my_recipe
二进制软件包(因为配方未将“ os”声明为设置):
$ conan search my_recipe/1.0@lasote/stable -q os=None
Tabular output
您可以使用--table
参数为给定配方的所有二进制文件生成一个表:
$ conan search jinja2cpp/1.1.0@ --table=file.html -r=conan-center
$ file.html # or open the file, double-click
Recipe and package revisions
搜索所有与模式匹配并显示修订的本地柯南软件包:
$ conan search "lib*" --revisions
$ Existing package recipes:
lib/1.0@user/channel#404e86c18e4a47a166fabe70b3b15e33
在本地修订中搜索本地缓存配方:
$ conan search lib/1.0@conan/testing --revisions
$ Revisions for 'lib/1.0@conan/testing':
a55e3b054fdbf4e2c6f10e955da69502 (2019-03-05 16:37:27 UTC)
搜索服务器中的远程修订:
$ conan search lib/1.0@conan/testing --revisions -r=myremote
Revisions for 'lib/1.0@conan/testing' at remote 'myremote':
78fcef25a1eaeecd5facbbf08624c561 (2019-03-05 16:37:27 UTC)
f3367e0e7d170aa12abccb175fee5f97 (2019-03-05 16:37:27 UTC)