conan 用户权限被拒绝

时间:2021-07-22 17:05:38

标签: conan

我有一个使用箭头和镶木地板的项目。我下载并构建了所需的库,然后成功构建了我的库。现在我想迁移它以使用 conan,以简化构建过程。

我面临的问题是,大多数(如果不是全部)箭头的预构建二进制文件都不包含镶木地板,至少对于 Windows。

这可能意味着柯南会下载配方并构建它。但是,一旦我将镶木地板添加到我的 conanfile.txt 中,就会出现错误

这是我的 conanfile.txt

[requires]
arrow/2.0.0
rapidjson/cci.20200410
catch2/2.13.6

[generators]
cmake

[options]
arrow:shared=False
arrow:parquet=True

这些是我在使用 conan install 时遇到的错误

>conan install ..
Configuration:
[settings]
arch=x86_64
arch_build=x86_64
build_type=Release
compiler=Visual Studio
compiler.runtime=MD
compiler.version=14
os=Windows
os_build=Windows
[options]
[build_requires]
[env]

WARN: thrift/0.13.0: requirement boost/1.76.0 overridden by arrow/2.0.0 to boost/1.74.0
WARN: libevent/2.1.12: requirement openssl/1.1.1j overridden by thrift/0.13.0 to openssl/1.1.1k
ERROR: Permission denied for user: 'None'. [Remote: bincrafters:]

从错误中,我假设配方有一些版本冲突并且无法继续,并且我需要执行类似 Using override 的操作,但我不知道如何有效地执行此操作。

其他答案,包括 a very similar question 中的一个,假设将柯南更新到最新版本可以解决这个问题,但我已经更新到 1.38 版,但无济于事。

有什么提示吗?

编辑 1:

我发现的第一件事是我的 remotes.json 已过时,指向 bincrafters。这可能确实是破坏我构建的东西。稍后我会发布我发现的内容

2 个答案:

答案 0 :(得分:2)

<块引用>

我发现的第一件事是我的 remotes.json 已过时,指向 bincrafters。这可能确实是破坏我构建的东西。稍后我会发布我发现的内容

是的,你说得对。此信息和操作已在此处共享:https://bincrafters.github.io/2020/04/19/infrastructure-changes-and-required-actions/

<块引用>

根据错误,我假设配方存在一些版本冲突并且无法继续,并且我需要执行诸如使用覆盖之类的操作,但我不知道如何有效地执行此操作。

由于所有配方都是手动更新的,所以版本冲突时有发生。此处记录了您问题的正确修复方法:https://docs.conan.io/en/latest/faq/troubleshooting.html#error-incompatible-requirements-obtained-in-different-evaluations-of-requirements

除此之外,您可以在此处打开一个请求版本更新的问题:https://github.com/conan-io/conan-center-index/issues

答案 1 :(得分:0)

我想我应该记录我的发现,因为这些信息不容易获得:

首先

ERROR: Permission denied for user: 'None'. [Remote: bincrafters:]

这表明 remotes.json 有一个错误的配置。 bincrafters 不再存在,但是如果无法访问其中一个遥控器,conan 会停止(配置是几年前由其他人创建的,它是自定义的,因为它也指向公司存储库)。

第二:

清除第一个错误后,第二个答案就有些明显了:

我更新了我的 conanfile.txt 以强制我的配方使用最新的 boost 和 openssl(从而绕过版本冲突)

[requires]
arrow/2.0.0
rapidjson/cci.20200410
catch2/2.13.6
boost/1.76.0
openssl/1.1.1k

[generators]
cmake

[options]
arrow:shared=False
arrow:parquet=True
arrow:with_snappy=True

然后继续安装 conan 依赖项,构建缺少的依赖项:

conan install .. --build=arrow