

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 安装 Amazon IoT Greengrass Core 软件（CLI）
<a name="install-greengrass-v2-cli"></a>

**注意**  
这些步骤不适用于 Nucleus Lite。

**安装和配置 Amazon IoT Greengrass Core 软件**

1. 在 Greengrass 核心设备上，运行以下命令切换到主目录。

------
#### [ Linux or Unix ]

   ```
   cd ~
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   cd %USERPROFILE%
   ```

------
#### [ PowerShell ]

   ```
   cd ~
   ```

------

1. <a name="installation-download-ggc-software-step"></a>在您的核心设备上，将 Amazon IoT Greengrass Core 软件下载到名为 `greengrass-nucleus-latest.zip` 的文件中。

------
#### [ Linux or Unix ]

   ```
   curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip > greengrass-nucleus-latest.zip
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   curl -s https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip > greengrass-nucleus-latest.zip
   ```

------
#### [ PowerShell ]

   ```
   iwr -Uri https://d2s8p88vqu9w66.cloudfront.net/releases/greengrass-nucleus-latest.zip -OutFile greengrass-nucleus-latest.zip
   ```

------

   <a name="core-software-license"></a>下载此软件即表示您同意[Greengrass Core 软件许可协议](https://greengrass-release-license.s3.us-west-2.amazonaws.com/greengrass-license-v1.pdf)。

1. <a name="installation-unzip-ggc-software-step"></a>将 Amazon IoT Greengrass Core 软件解压缩到设备上的某个文件夹中。将 {{GreengrassInstaller}} 替换为您要使用的文件夹。

------
#### [ Linux or Unix ]

   ```
   unzip greengrass-nucleus-latest.zip -d {{GreengrassInstaller}} && rm greengrass-nucleus-latest.zip
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   mkdir {{GreengrassInstaller}} && tar -xf greengrass-nucleus-latest.zip -C {{GreengrassInstaller}} && del greengrass-nucleus-latest.zip
   ```

------
#### [ PowerShell ]

   ```
   Expand-Archive -Path greengrass-nucleus-latest.zip -DestinationPath .\\{{GreengrassInstaller}}
   rm greengrass-nucleus-latest.zip
   ```

------

1. 运行以下命令以启动 Amazon IoT Greengrass Core 软件安装程序。此命令执行以下操作：
   + <a name="install-argument-aws-resources"></a>创建核心设备运行所需的 Amazon 资源。
   + <a name="install-argument-system-service"></a>将 Amazon IoT Greengrass Core 软件设置为启动时运行的系统服务。在 Linux 设备上，这需要 [Systemd](https://en.wikipedia.org/wiki/Systemd) 初始化系统。
**重要**  <a name="windows-system-service-requirement-important-note"></a>
在 Windows 核心设备上，必须将 Amazon IoT Greengrass Core 软件设置为系统服务。
   + <a name="install-argument-dev-tools"></a>部署 [Amazon IoT GreengrassCLI 组件](gg-cli.md)，这是一种命令行工具，支持您在核心设备上开发自定义 Greengrass 组件。
   + <a name="install-argument-component-default-user"></a>指定使用 `ggc_user` 系统用户在核心设备上运行软件组件。在 Linux 设备上，此命令还指定使用 `ggc_group` 系统组，安装程序会为您创建系统用户和组。

   如下所示替换命令中的参数值。<a name="installer-replace-arguments"></a>

   1. `{{/greengrass/v2}}` 或 {{C:\\greengrass\\v2}}：用于安装 Amazon IoT Greengrass Core 软件的根文件夹的路径。

   1. {{GreengrassInstaller}}。您解压缩 Amazon IoT Greengrass Core 软件安装程序所用目标文件夹的路径。

   1. {{region}}。用于查找或创建资源的 Amazon Web Services 区域。

   1. {{MyGreengrassCore}}。您的 Greengrass 核心设备的 Amazon IoT 事物的名称。如果该事物不存在，安装程序会进行创建。安装程序会下载证书以作为 Amazon IoT 事物进行身份验证。有关更多信息，请参阅 [设备身份验证和授权 Amazon IoT Greengrass](device-auth.md)。
**注意**  <a name="install-argument-thing-name-constraint"></a>
事物名称不得包含英文冒号 (`:`) 字符。

   1. {{MyGreengrassCoreGroup}}。您的 Greengrass 核心设备的 Amazon IoT 事物组的名称。如果该事物组不存在，安装程序会进行创建并向其中添加事物。如果事物组存在且有活动的部署，则核心设备将下载并运行部署指定的软件。
**注意**  <a name="install-argument-thing-group-name-constraint"></a>
事物组名称不得包含英文冒号 (`:`) 字符。

   1. {{GreengrassV2IoTThingPolicy}}。允许 Greengrass 核心设备与 Amazon IoT 和 Amazon IoT Greengrass 通信的 Amazon IoT 策略的名称。如果该 Amazon IoT 策略不存在，则安装程序会使用此名称创建宽容的 Amazon IoT 策略。您可以根据自己的使用案例限制此策略的权限。有关更多信息，请参阅 [Amazon IoT Greengrass V2 核心设备的最低 Amazon IoT 政策](device-auth.md#greengrass-core-minimal-iot-policy)。

   1. {{GreengrassV2TokenExchangeRole}}。允许 Greengrass 核心设备获取临时 Amazon 凭证的 IAM 角色的名称。如果该角色不存在，则安装程序会创建该角色并附加名为 `{{GreengrassV2TokenExchangeRole}}Access` 的策略。有关更多信息，请参阅 [授权核心设备与 Amazon 服务交互](device-service-role.md)。

   1. {{GreengrassCoreTokenExchangeRoleAlias}}。允许 Greengrass 核心设备稍后获取临时凭证的 IAM 角色的别名。如果该角色别名不存在，则安装程序会自行创建，并将其指向您指定的 IAM 角色。有关更多信息，请参阅 [授权核心设备与 Amazon 服务交互](device-service-role.md)。

------
#### [ Linux or Unix ]

   ```
   sudo -E java -Droot="{{/greengrass/v2}}" -Dlog.store=FILE \
     -jar ./{{GreengrassInstaller}}/lib/Greengrass.jar \
     --aws-region {{region}} \
     --thing-name {{MyGreengrassCore}} \
     --thing-group-name {{MyGreengrassCoreGroup}} \
     --thing-policy-name {{GreengrassV2IoTThingPolicy}} \
     --tes-role-name {{GreengrassV2TokenExchangeRole}} \
     --tes-role-alias-name {{GreengrassCoreTokenExchangeRoleAlias}} \
     --component-default-user ggc_user:ggc_group \
     --provision true \
     --setup-system-service true \
     --deploy-dev-tools true
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   java -Droot="{{C:\greengrass\v2}}" "-Dlog.store=FILE" ^
     -jar ./{{GreengrassInstaller}}/lib/Greengrass.jar ^
     --aws-region {{region}} ^
     --thing-name {{MyGreengrassCore}} ^
     --thing-group-name {{MyGreengrassCoreGroup}} ^
     --thing-policy-name {{GreengrassV2IoTThingPolicy}} ^
     --tes-role-name {{GreengrassV2TokenExchangeRole}} ^
     --tes-role-alias-name {{GreengrassCoreTokenExchangeRoleAlias}} ^
     --component-default-user ggc_user ^
     --provision true ^
     --setup-system-service true ^
     --deploy-dev-tools true
   ```

------
#### [ PowerShell ]

   ```
   java -Droot="{{C:\greengrass\v2}}" "-Dlog.store=FILE" `
     -jar ./{{GreengrassInstaller}}/lib/Greengrass.jar `
     --aws-region {{region}} `
     --thing-name {{MyGreengrassCore}} `
     --thing-group-name {{MyGreengrassCoreGroup}} `
     --thing-policy-name {{GreengrassV2IoTThingPolicy}} `
     --tes-role-name {{GreengrassV2TokenExchangeRole}} `
     --tes-role-alias-name {{GreengrassCoreTokenExchangeRoleAlias}} `
     --component-default-user ggc_user `
     --provision true `
     --setup-system-service true `
     --deploy-dev-tools true
   ```

------
**注意**  
<a name="jvm-tuning-note"></a>如果您在内存有限的设备上运行 Amazon IoT Greengrass，则可以控制 Amazon IoT Greengrass Core 软件使用的内存量。要控制内存分配，您可以在 Nucleus 组件的 `jvmOptions` 配置参数中设置 JVM 堆大小选项。有关更多信息，请参阅 [使用 JVM 选项控制内存分配](configure-greengrass-core-v2.md#jvm-tuning)。

   运行该命令后，您将看到以下信息，表明安装程序已成功完成。

   ```
   Successfully configured Nucleus with provisioned resource details!
   Configured Nucleus to deploy aws.greengrass.Cli component
   Successfully set up Nucleus as a system service
   ```
**注意**  <a name="installer-linux-no-systemd-message"></a>
如果您有 Linux 设备但没有 [systemd](https://en.wikipedia.org/wiki/Systemd)，则安装程序不会将该软件设置为系统服务，您也不会看到将 Nucleus 设置为系统服务的成功消息。