I updated the configuration of aws.greengrass.Nucleus by deploying it from IoT console to my core device, which is a Raspberry pi. After that, the directory (/greengrass/v2/packages/artifacts-unarchived/aws.greengrass.Cli/2.0.5/aws.greengrass.cli.client/cliclient-2.0.0-SNAPSHOT/bin/greengrass-cli) greengrass-cli was linked to disappeared. So I tried to deploy greengrass-cli from IoT console and it fails. The greengrass log file looks like this:
2021-03-16T20:26:40.983Z [INFO] (Serialized listener processor) com.aws.greengrass.componentmanager.ComponentStore: plugin-load. Digest from store: DhhOGRdYaJ00U39VF1PHPdR9MFecLDvP4QW25GNPPDw=. {}
2021-03-16T20:26:40.983Z [INFO] (Serialized listener processor) com.aws.greengrass.componentmanager.ComponentStore: plugin-load. Digest from recipe: DhhOGRdYaJ00U39VF1PHPdR9MFecLDvP4QW25GNPPDw=. {}
2021-03-16T20:26:40.994Z [INFO] (Serialized listener processor) com.aws.greengrass.cli.CLIService: Waiting for the desired state list. {serviceName=aws.greengrass.Cli, currentState=NEW}
2021-03-16T20:26:40.995Z [ERROR] (Serialized listener processor) com.aws.greengrass.lifecyclemanager.GenericExternalService: Error while setting up dependencies from subscription. {serviceName=main, cur
rentState=FINISHED}
com.aws.greengrass.lifecyclemanager.exceptions.ServiceLoadException: Can't create Greengrass Service instance CLIService
at com.aws.greengrass.lifecyclemanager.Kernel.lambda$locate$2(Kernel.java:450)
at com.aws.greengrass.dependency.Context$Value.computeObjectIfEmpty(Context.java:557)
at com.aws.greengrass.lifecyclemanager.Kernel.locate(Kernel.java:360)
at com.aws.greengrass.lifecyclemanager.GreengrassService.getDependencyTypeMap(GreengrassService.java:546)
at com.aws.greengrass.lifecyclemanager.GreengrassService.setupDependencies(GreengrassService.java:585)
at com.aws.greengrass.lifecyclemanager.GreengrassService.lambda$initDependenciesTopic$0(GreengrassService.java:168)
at com.aws.greengrass.config.Topic.fire(Topic.java:246)
at com.aws.greengrass.config.Topic.lambda$withNewerValue$0(Topic.java:235)
at com.aws.greengrass.dependency.Context$1.run(Context.java:67)
Caused by: java.lang.IllegalArgumentException: Can't create instance of com.aws.greengrass.lifecyclemanager.GreengrassService
at com.aws.greengrass.dependency.Context$Value.constructObjectWithInjection(Context.java:484)
at com.aws.greengrass.dependency.Context$Value.get(Context.java:431)
at com.aws.greengrass.dependency.Context.lambda$put$2(Context.java:175)
at java.util.concurrent.ConcurrentHashMap.compute(ConcurrentHashMap.java:1877)
at com.aws.greengrass.dependency.Context.put(Context.java:171)
at com.aws.greengrass.lifecyclemanager.Kernel.lambda$locate$2(Kernel.java:439)
... 8 more
Caused by: java.lang.NoSuchMethodException: No usable injection constructor for class com.aws.greengrass.lifecyclemanager.GreengrassService
at com.aws.greengrass.dependency.Context$Value.pickConstructor(Context.java:539)
at com.aws.greengrass.dependency.Context$Value.constructObjectWithInjection(Context.java:472)
... 13 more
2021-03-16T20:26:41.638Z [INFO] (Serialized listener processor) com.aws.greengrass.componentmanager.GreengrassComponentServiceClientFactory: initialize-greengrass-client. {service-region=us-west-2, service-endpoint=https://greengrass-ats.iot.us-west-2.amazonaws.com:8443}
2021-03-16T20:26:44.286Z [INFO] (Serialized listener processor) com.aws.greengrass.componentmanager.GreengrassComponentServiceClientFactory: initialize-greengrass-client. {service-region=us-west-2, service-endpoint=https://greengrass-ats.iot.us-west-2.amazonaws.com:8443}
2021-03-16T20:26:44.509Z [INFO] (Serialized listener processor) com.aws.greengrass.componentmanager.ComponentStore: plugin-load. Digest from store: DhhOGRdYaJ00U39VF1PHPdR9MFecLDvP4QW25GNPPDw=. {}
2021-03-16T20:26:44.509Z [INFO] (Serialized listener processor) com.aws.greengrass.componentmanager.ComponentStore: plugin-load. Digest from recipe: DhhOGRdYaJ00U39VF1PHPdR9MFecLDvP4QW25GNPPDw=. {}
2021-03-16T20:26:44.518Z [INFO] (Serialized listener processor) com.aws.greengrass.cli.CLIService: Waiting for the desired state list. {serviceName=aws.greengrass.Cli, currentState=NEW}
2021-03-16T20:26:44.519Z [ERROR] (pool-2-thread-30) com.aws.greengrass.deployment.activator.DeploymentActivator: merge-config. Deployment failed. {deploymentId=arn:aws:greengrass:us-west-2:308868511064:configuration:thing/myPiThing:13}
com.aws.greengrass.lifecyclemanager.exceptions.ServiceLoadException: Can't create Greengrass Service instance CLIService
at com.aws.greengrass.lifecyclemanager.Kernel.lambda$locate$2(Kernel.java:450)
at com.aws.greengrass.dependency.Context$Value.computeObjectIfEmpty(Context.java:557)
at com.aws.greengrass.lifecyclemanager.Kernel.locate(Kernel.java:360)
at com.aws.greengrass.deployment.DeploymentConfigMerger$AggregateServicesChangeManager.startNewServices(DeploymentConfigMerger.java:295)
at com.aws.greengrass.deployment.activator.DefaultActivator.lambda$activate$0(DefaultActivator.java:67)
at com.aws.greengrass.dependency.Context.lambda$runOnPublishQueueAndWait$6(Context.java:293)
at com.aws.greengrass.dependency.Context$1.run(Context.java:67)
Caused by: java.lang.IllegalArgumentException: Can't create instance of com.aws.greengrass.lifecyclemanager.GreengrassService
at com.aws.greengrass.dependency.Context$Value.constructObjectWithInjection(Context.java:484)
at com.aws.greengrass.dependency.Context$Value.get(Context.java:431)
at com.aws.greengrass.dependency.Context.lambda$put$2(Context.java:175)
at java.util.concurrent.ConcurrentHashMap.compute(ConcurrentHashMap.java:1877)
at com.aws.greengrass.dependency.Context.put(Context.java:171)
at com.aws.greengrass.lifecyclemanager.Kernel.lambda$locate$2(Kernel.java:439)
... 6 more
Caused by: java.lang.NoSuchMethodException: No usable injection constructor for class com.aws.greengrass.lifecyclemanager.GreengrassService
at com.aws.greengrass.dependency.Context$Value.pickConstructor(Context.java:539)
at com.aws.greengrass.dependency.Context$Value.constructObjectWithInjection(Context.java:472)
... 11 more
2021-03-16T20:26:44.521Z [INFO] (pool-2-thread-30) com.aws.greengrass.deployment.activator.DeploymentActivator: merge-config. Rolling back failed deployment. {deploymentId=arn:aws:greengrass:us-west-2:308868511064:configuration:thing/myPiThing:13}
I made sure my JAVA_HOME is pointing to the correct directory. Other components appear to be running fine. Thanks!