

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

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

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

**安装和配置 AWS 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>在您的核心设备上，将 AWS 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>将 AWS 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. 运行以下命令以启动 AWS IoT Greengrass Core 软件安装程序。此命令执行以下操作：
   + <a name="install-argument-aws-resources"></a>创建核心设备运行所需的 AWS 资源。
   + <a name="install-argument-system-service"></a>将 AWS IoT Greengrass Core 软件设置为启动时运行的系统服务。在 Linux 设备上，这需要 [Systemd](https://en.wikipedia.org/wiki/Systemd) 初始化系统。
**重要**  <a name="windows-system-service-requirement-important-note"></a>
在 Windows 核心设备上，必须将 AWS IoT Greengrass Core 软件设置为系统服务。
   + <a name="install-argument-dev-tools"></a>部署 [AWS 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:\$1greengrass\$1v2*：用于安装 AWS IoT Greengrass Core 软件的根文件夹的路径。

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

   1. *region*。用于查找或创建资源的 AWS 区域。

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

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

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

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

   1. *GreengrassCoreTokenExchangeRoleAlias*。允许 Greengrass 核心设备稍后获取临时凭证的 IAM 角色的别名。如果该角色别名不存在，则安装程序会自行创建，并将其指向您指定的 IAM 角色。有关更多信息，请参阅 [授权核心设备与 AWS 服务交互](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>如果您在内存有限的设备上运行 AWS IoT Greengrass，则可以控制 AWS 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 设置为系统服务的成功消息。