Can't update nucelus due to dependency

0

Our group of devices are still running the nucleus component version 2.7.0. When we try to update, it seems like it gets in conflict with the greengrass.cli component, failing the deployment with the following error:

NoAvailableComponentVersionException: No local or cloud component version satisfies the requirements. [...] aws.greengrass.Cli requires >=2.5.0 <2.8.0, thinggroup/staging requires =2.9.5.

However, the only deployment on that device does not have the greengrass.Cli component (it was removed a while ago). If I try to add the CLI component to the deployment with a newer version, it also fails with dependency errors:

[...] Component aws.greengrass.Cli version constraints: thing/mything01 requires =2.7.0

When I go on that thing's menu, I can see the component 'aws.greengrass.Cli v2.7.0 is listed with dependency type as "root" (with tooltip "This component is specified in a deployment that targets this core device"), but I can't see where this dependency is coming from and I can't remove it.

If I can't see this dependency from the deployments to this devices, where else could it come from, and how can I remove it ?

EDIT: greegrass was installed on the device using --deploy-dev-tools true, which may be related to the problem

1 Answer
0
Accepted Answer

Hi,

The second error you posted tells you what the problem is. You've deployed the CLI version 2.7.0 to the thing mything01 . You must remove the CLI from the thing's deployment, then you can deploy your update to the thing group. The issue is that you're using both thing and thinggroup deployments targeting the same device and then leading to this conflict.

Cheers,

Michael

AWS
EXPERT
answered a year ago
  • Hi, thanks for the answer. I think this is the issue, but the problem I am having is that I do not have any direct deployment to this device, only "thinggroup" deployment. I can validate this information by looking at the "deployment" tab of the thing mything01, where only the group deployment shows up. I believe greengrass was installed on the device with the --deploy-dev-tools true, maybe this is what installed this component ?

  • Even with that flag, that isn't magic, it just creates a deployment for you. Create a new deployment targeting the thing and make the deployment contain no components. This will remove the CLI from the thing's deployment.

  • Thanks, that did the trick. Would have been great to be able to see that deployment on the dashboard. I can see the empty deployment on that device now, and it did remove the other invisible deployment.

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions