如何使用 Conan 指定特定的默认安装目录?

How can I specify a specific default installation directory with Conan?

我正在寻求在系统上部署(在 Linux 上)Conan 包,但 conanfile.py 中没有指定 deploy() 方法。所以(我相信)这意味着软件包将安装在当前目录中。

相反,我想指定一个默认目录。我尝试使用 conan install -if /some/directory 但得到:

conan install: error: unrecognized arguments: -if  /some/directory 

(看来我需要将 -g 与 -if 结合使用?但我并不是要构建包,只是部署它。)

有办法吗?我是否正确理解了默认行为?

更新:写这个问题有助于理清我的想法,所以我尝试使用 conan install -g deploy -if /some/directory PACKAGE,虽然我不再收到 -if 相关的错误消息,但它仍然不起作用:只是在指定目录中留下一个 conanbuildinfo.txt 文件。

简短的回答似乎是我不能。

根据 conan documentationconan install 安装配方中指定的要求(conanfile.py 或 conanfile.txt)。它还可以用于安装指定引用的具体包。 它通常在缓存中安装包

根据 conanfile.py 和提供的安装文档,如果它没有实现 deploy() 方法,这可能意味着工件被复制到包中。您可以从 conanfile.py.

中的 package() 算出

将工件复制到自定义目录的一种解决方法是从缓存中的已安装包中手动复制它。您通常可以在终端显示的路径 ~/.conan/data/<Package_Reference>/package/<Binary_Package_ID> 上找到包,而 运行 conan install.

如果包中包含可以生成二进制工件的源代码,那么您可以使用以下命令在本地文件夹中生成二进制工件:

 $ conan source . --source-folder src
 $ conan install . --install-folder build
 $ conan build . --build-folder build --source-folder src

您将在 build 文件夹中找到生成的工件。