Berkshelf解析到非常老版本的食谱

时间:2018-12-12 22:24:29

标签: chef berkshelf

我有一本食谱,其依赖项的版本为20.x.x。

运行berks install时出现类似以下的解决错误:

Unable to satisfy the following requirements:

- `org_java (>= 0.0.0)` required by `org_dept_proj_xyz-20.0.2`
- `org_java (>= 0.0.0)` required by `org_dept_proj_pews-20.0.0`
- `org_java (>= 0.0.0)` required by `org_dept_proj_deployment_manager-20.0.0`
- `org_java (>= 0.0.0)` required by `org_dept_proj_swagger-20.0.0`
- `org_java (>= 0.0.0)` required by `org_dept_proj_rbd_webservice-20.0.0`
- `org_java (>= 0.0.0)` required by `org_jks-1.0.4`
- `org_java (>= 0.0.0)` required by `org_dept_proj_ppp-8.3.8`
- `org_java (>= 0.0.0)` required by `org_db2-0.9.0`
- `org_java (>= 0.0.0)` required by `org_dept_proj_consumer_controls-20.0.0`
- `org_java (>= 0.0.0)` required by `org_dept_proj_my_repo_webservice-2.2.8`
- `org_java (>= 2.3.3)` required by `org_jboss_eap_6-8.26.1`
- `org_java (>= 2.0.0)` required by `org_tomcat85-3.3.6`
- `org_java (>= 0.0.0)` required by `org_flyway-4.2.1`
- `org_java (~> 1.4)` required by `org_dept_proj_scope_base-0.15.6`
Unable to find a solution for demands: org_dept_proj_xyz (20.0.2), org_dept_proj_xyz_test (0.0.1)

以上所有版本20.x.x的食谱都存在,但是org_dept_proj_scope_base 20.x.x 也存在,并且出于某种原因,Berkshelf的分辨率为0.15.6。这导致berk失败,因为org_java的版本与其他org_java要求不兼容, 但是org_dept_proj_scope_base的20.x.x版本取决于org_java的兼容版本。

我不知道Berkshelf为什么要解决该版本。

Berksfile中的求解器行为:

solver :ruby, :required

1 个答案:

答案 0 :(得分:0)

使用berks install --debug获取有关食谱依赖关系解析的更多信息,并确保阅读cookbook versioning

两者都会为您提供所需的详细信息。