【问题标题】:How can I specify a specific default installation directory with Conan?如何使用柯南指定特定的默认安装目录?
【发布时间】:2021-09-09 15:11:22
【问题描述】:

我正在寻求在系统上部署(在 Linux 上)柯南包,并且 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指定目录下的文件。

【问题讨论】:

  • 安装文件夹与构建步骤(生成器文件)相关。如果要部署包,请使用Deploy 生成器,它将所有包文件夹复制到当前目录。无论如何,你不能直接改变柯南缓存结构,但你可以通过CONAN_USER_HOME env var 和配置download_cache 改变它的路径

标签: python linux conan


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-01
      • 2013-10-08
      • 2014-08-02
      相关资源
      最近更新 更多