本文档翻译自:https://docs.conan.io/en/latest/reference/commands/consumer/search.html

  1. $ conan search [-h] [-o] [-q QUERY] [-r REMOTE] [--case-sensitive]
  2. [--raw] [--table TABLE] [-j JSON] [-rev]
  3. [pattern_or_reference]

在本地缓存或远程中搜索程序包配方和二进制文件。
如果提供模式,则它将搜索与之匹配的现有包装配方。 如果提供了完整参考(pkg/0.1@user/channel),则将显示该参考的现有二进制软件包。 默认远程将被忽略,如果未指定任何远程,则将在本地缓存中进行搜索。 搜索区分大小写,必须使用确切的大小写。 对于不区分大小写的文件系统(例如Windows),可以使用“–case-sensitive”强制执行区分大小写的搜索。

  1. positional arguments:
  2. pattern_or_reference Pattern or package recipe reference, e.g., 'boost/*',
  3. 'MyPackage/1.2@user/channel'
  4. optional arguments:
  5. -h, --help show this help message and exit
  6. -o, --outdated 只显示过时的配方包。此标志只能输入引用搜索使用
  7. -q QUERY, --query QUERY
  8. Packages query: 'os=Windows AND (arch=x86 OR
  9. compiler=gcc)'. The 'pattern_or_reference' parameter
  10. has to be a reference: MyPackage/1.2@user/channel
  11. -r REMOTE, --remote REMOTE
  12. Remote to search in. '-r all' searches all remotes
  13. --case-sensitive 进行区分大小写的搜索。使用它来保证在Windows或其他不区分大小写的文件系统中进行区分大小写的搜索
  14. --raw Print just the list of recipes
  15. --table TABLE 输出带有二进制文件表的html文件。仅对引用搜索有效
  16. -j JSON, --json JSON 将搜索信息写入到的json文件路径
  17. -rev, --revisions 获取引用或包引用的修订列表。

Examples

  1. $ conan search "zlib/*"
  2. $ conan search "zlib/*" -r=conan-center

要在所有定义的远程中搜索配方,请使用-r all(这仅对搜索配方有效,对二进制文件无效):

  1. $ conan search "zlib/*" -r=all

如果改用完整的包装配方参考,则可以在远程或本地柯南缓存中浏览该配方的现有二进制文件:

  1. $ conan search boost/1.71.0@

Query syntax

允许使用查询语法查找特定的二进制文件,您可以使用ANDOR运算符以及带有设置和选项的括号。

  1. $ conan search boost/1.71.0@ -q arch=x86_64
  2. $ conan search boost/1.71.0@ -q "(arch=x86_64 OR arch=ARM) AND (build_type=Release OR os=Windows)"

查询语法允许使用子设置,即使是自定义设置也是如此。 例如:

  1. $ conan search boost/1.71.0@ -q "compiler=gcc AND compiler.version=9"
  2. $ conan search boost/1.71.0@ -q "os=Linux AND os.distro=Ubuntu AND os.distro.version=19.04"

如果您为设置指定查询过滤器,并且包装配方不受此设置的限制,则柯南将找不到这些包装。 例如:

  1. class MyRecipe(ConanFile):
  2. name = "my_recipe"
  3. settings = "arch",
  1. $ conan search my_recipe/1.0@lasote/stable -q os=Windows

除非您指定None值,否则上面的查询将找不到my_recipe二进制软件包(因为配方未将“ os”声明为设置):

  1. $ conan search my_recipe/1.0@lasote/stable -q os=None

Tabular output

您可以使用--table参数为给定配方的所有二进制文件生成一个表:

  1. $ conan search jinja2cpp/1.1.0@ --table=file.html -r=conan-center
  2. $ file.html # or open the file, double-click

conan search - 图1

Recipe and package revisions

搜索所有与模式匹配并显示修订的本地柯南软件包:

  1. $ conan search "lib*" --revisions
  2. $ Existing package recipes:
  3. lib/1.0@user/channel#404e86c18e4a47a166fabe70b3b15e33

在本地修订中搜索本地缓存配方:

  1. $ conan search lib/1.0@conan/testing --revisions
  2. $ Revisions for 'lib/1.0@conan/testing':
  3. a55e3b054fdbf4e2c6f10e955da69502 (2019-03-05 16:37:27 UTC)

搜索服务器中的远程修订:

  1. $ conan search lib/1.0@conan/testing --revisions -r=myremote
  2. Revisions for 'lib/1.0@conan/testing' at remote 'myremote':
  3. 78fcef25a1eaeecd5facbbf08624c561 (2019-03-05 16:37:27 UTC)
  4. f3367e0e7d170aa12abccb175fee5f97 (2019-03-05 16:37:27 UTC)