

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

# 第 2 步：设置环境
<a name="getting-started-set-up-environment"></a>

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

按照本节中的步骤，将 Linux 或 Windows 设备设置为您的 AWS IoT Greengrass 核心设备。

## 设置 Linux 设备（Raspberry Pi）
<a name="getting-started-set-up-raspberry-pi"></a>

这些步骤假设您使用搭载 Raspberry Pi 操作系统的 Raspberry Pi。如果您使用其它设备或操作系统，请查阅您设备的相关文档。

**要设置 Raspberry Pi AWS IoT Greengrass V2**

1. 启用 Raspberry Pi 上的 SSH 才能远程连接到它。有关更多信息，请参阅《Raspberry Pi 文档》**中的 [SSH（安全 shell）](https://www.raspberrypi.com/documentation/computers/remote-access.html#ssh)。

1. 找到 Raspberry Pi 的 IP 地址，通过 SSH 与之连接。为此，可以在 Raspberry Pi 上运行以下命令。

   ```
   hostname -I
   ```

1. 通过 SSH 连接到 Raspberry Pi。

   在开发计算机上运行以下命令。*username*替换为要登录的用户名，然后*pi-ip-address*替换为在上一步中找到的 IP 地址。

   ```
   ssh username@pi-ip-address
   ```
**重要**  
如果您的开发计算机使用的是较早版本的 Windows，那么您可能没有 `ssh` 命令，或者可能有 `ssh` 但无法连接到您的 Raspberry Pi。要连接 Raspberry Pi，您可以安装和配置 [PuTTY](https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html)，这是一款免费的开源 SSH 客户端。要连接 Raspberry Pi，请查阅 [Putty 文档](https://tartarus.org/~simon/putty-snapshots/htmldoc/Chapter2.html#gs)。

1. 安装 Java 运行时， AWS IoT Greengrass 核心软件需要运行该运行时。在 Raspberry Pi 上，使用以下命令安装 Java 11。

   ```
   sudo apt install default-jdk
   ```

   安装完成后，运行以下命令验证 Java 是否已在 Raspberry Pi 上运行。

   ```
   java -version
   ```

   此命令会打印设备上运行的 Java 版本。该输出可能类似于以下示例：

   ```
   openjdk version "11.0.9.1" 2020-11-04
   OpenJDK Runtime Environment (build 11.0.9.1+1-post-Debian-1deb10u2)
   OpenJDK 64-Bit Server VM (build 11.0.9.1+1-post-Debian-1deb10u2, mixed mode)
   ```

**提示：在 Raspberry Pi 上设置内核参数**  
如果您的设备是 Raspberry Pi，则可以完成以下步骤来查看和更新其 Linux 内核参数：  
打开 `/boot/cmdline.txt` 文件。此文件指定 Raspberry Pi 启动时需要应用的 Linux 内核参数。  
例如，在 Linux 系统上，您可以运行以下命令来使用 GNU nano 打开文件。  

   ```
   sudo nano /boot/cmdline.txt
   ```
确认 `/boot/cmdline.txt` 文件包含以下内核参数。`systemd.unified_cgroup_hierarchy=0` 参数指定使用 cgroups v1，而非 cgroups v2。  

   ```
   cgroup_enable=memory cgroup_memory=1 systemd.unified_cgroup_hierarchy=0
   ```
如果 `/boot/cmdline.txt` 文件不包含这些参数，或者包含这些参数但参数值不同，请更新该文件以包含这些参数和值。
如果您更新了 `/boot/cmdline.txt` 文件，请重新启动 Raspberry Pi 以应用更改。  

   ```
   sudo reboot
   ```

## 设置 Linux 设备（其他）
<a name="getting-started-set-up-linux"></a><a name="set-up-linux-device-environment-procedure"></a>

**设置 Linux 设备用于 AWS IoT Greengrass V2**

1. 安装 Java 运行时， AWS IoT Greengrass 核心软件需要运行该运行时。我们建议您使用 [Amazon Corretto](https://aws.amazon.com/corretto/) 或 [OpenJDK](https://openjdk.java.net/) 长期支持版本。需要版本 8 或更高版本。以下命令向您展示如何在您的设备上安装 OpenJDK。
   + 对于基于 Debian 或基于 Ubuntua 的发行版：

     ```
     sudo apt install default-jdk
     ```
   + 对于基于 Red Hat 的发行版：

     ```
     sudo yum install java-11-openjdk-devel
     ```
   + 对于 Amazon Linux 2：

     ```
     sudo amazon-linux-extras install java-openjdk11
     ```
   + 对于 Amazon Linux 2023：

     ```
     sudo dnf install java-11-amazon-corretto -y
     ```

   安装完成后，运行以下命令以验证 Java 是否在您的 Linux 设备上运行。

   ```
   java -version
   ```

   此命令会打印设备上运行的 Java 版本。例如，在基于 Debian 的发行版上，输出可能与以下示例类似。

   ```
   openjdk version "11.0.9.1" 2020-11-04
   OpenJDK Runtime Environment (build 11.0.9.1+1-post-Debian-1deb10u2)
   OpenJDK 64-Bit Server VM (build 11.0.9.1+1-post-Debian-1deb10u2, mixed mode)
   ```

1. （可选）创建在设备上运行组件的默认系统用户和组。您也可以选择让 AWS IoT Greengrass 核心软件安装程序在安装过程中使用安装程序参数创建此用户和组。`--component-default-user`有关更多信息，请参阅 [安装程序参数](configure-installer.md)。

   ```
   sudo useradd --system --create-home ggc_user
   sudo groupadd --system ggc_group
   ```

1. 验证运行 AWS IoT Greengrass Core 软件的用户（通常`root`）是否有权`sudo`与任何用户和任何组一起运行。

   1. 运行以下命令以打开 `/etc/sudoers` 文件。

      ```
      sudo visudo
      ```

   1. 验证用户的权限是否如以下示例所示。

      ```
      root    ALL=(ALL:ALL) ALL
      ```

1. （可选）要[运行容器化 Lambda 函数](run-lambda-functions.md)，必须启用 [cgroups](https://en.wikipedia.org/wiki/Cgroups) v1，且必须启用并装载*内存*和*设备* cgroups。如果您不打算运行容器化 Lambda 函数，则可跳过此步骤。

   要启用这些 cgroups 选项，请使用以下 Linux 内核参数启动设备。

   ```
   cgroup_enable=memory cgroup_memory=1 systemd.unified_cgroup_hierarchy=0
   ```

   有关查看和设置设备内核参数的信息，请参阅适用于您操作系统和启动加载程序的文档。按照说明永久设置内核参数。

1. 按照 [设备要求](greengrass-nucleus-component.md#greengrass-v2-requirements) 中的要求列表所示，在您的设备上安装所有其他必需的依赖关系。

## 设置 Windows 设备
<a name="getting-started-set-up-windows"></a><a name="set-up-windows-device-environment-procedure"></a>

**要将 Windows 设备设置为 AWS IoT Greengrass V2**

1. 安装 Java 运行时， AWS IoT Greengrass 核心软件需要运行该运行时。我们建议您使用 [Amazon Corretto](https://aws.amazon.com/corretto/) 或 [OpenJDK](https://openjdk.java.net/) 长期支持版本。需要版本 8 或更高版本。

1. 检查在 [PATH](https://en.wikipedia.org/wiki/PATH_(variable)) 系统变量上是否有 Java 可用，如果没有，请进行添加。该 LocalSystem 帐户运行 AWS IoT Greengrass Core 软件，因此您必须将 Java 添加到 PATH 系统变量中，而不是为用户添加 PATH 用户变量。执行以下操作：

   1. 按下 Windows 键打开开始菜单。

   1. 键入 **environment variables** 以从开始菜单中搜索系统选项。

   1. 在开始菜单搜索结果中，选择**编辑系统环境变量**，以打开**系统属性**窗口。

   1. 选择**环境变量...**，打开**环境变量**窗口。

   1. 在**系统变量**下，选择**路径**，然后选择**编辑**。在**编辑环境变量**窗口中，您可以分行查看每个路径。

   1. 检查 Java 安装的 `bin` 文件夹的路径是否存在。路径可能与以下示例类似。

      ```
      C:\\Program Files\\Amazon Corretto\\jdk11.0.13_8\\bin
      ```

   1. 如果**路径**中缺少 Java 安装的 `bin` 文件夹，请选择**新建**，添加该文件夹，然后选择**确定**。

1. <a name="set-up-windows-device-environment-open-cmd"></a>以管理员身份打开 Windows 命令提示符 (`cmd.exe`)。

1. <a name="set-up-windows-device-environment-create"></a>在 Windows 设备上的 LocalSystem 帐户中创建默认用户。*password*替换为安全密码。

   ```
   net user /add ggc_user password
   ```
**提示**  <a name="windows-password-expiration-tip"></a>
根据您的 Windows 配置，用户密码可能会设置为在将来某个日期过期。为确保您的 Greengrass 应用程序继续运行，请跟踪密码过期时间，并在密码过期之前对其进行更新。您还可以将用户的密码设置为永不过期。  
要检查用户及其密码的过期时间，请运行以下命令。  

     ```
     net user ggc_user | findstr /C:expires
     ```
要将用户密码设置为永不过期，请运行以下命令。  

     ```
     wmic UserAccount where "Name='ggc_user'" set PasswordExpires=False
     ```
如果你使用的是[已弃用该`wmic`命令的](https://learn.microsoft.com/en-us/windows/win32/wmisdk/wmic) Windows 10 或更高版本，请运行以下 PowerShell 命令。  

     ```
     Get-CimInstance -Query "SELECT * from Win32_UserAccount WHERE name = 'ggc_user'" | Set-CimInstance -Property @{PasswordExpires="False"}
     ```

1. <a name="set-up-windows-device-psexec"></a>从微软下载该[PsExec实用程序](https://docs.microsoft.com/en-us/sysinternals/downloads/psexec)并将其安装到设备上。

1. <a name="set-up-windows-device-credentials"></a>使用该 PsExec 实用程序将默认用户的用户名和密码存储在 LocalSystem 账户的凭据管理器实例中。*password*替换为您之前设置的用户密码。

   ```
   psexec -s cmd /c cmdkey /generic:ggc_user /user:ggc_user /pass:password
   ```

   如果系统打开 **PsExec License Agreement**，请选择 **Accept** 以同意许可并运行命令。
**注意**  
在 Windows 设备上，该 LocalSystem 帐户运行 Greengrass 核心，您必须使用 PsExec 该实用程序在帐户中存储默认用户信息。 LocalSystem 使用凭据管理器应用程序将此信息存储在当前登录用户的 Windows 帐户中，而不是 LocalSystem 帐户中。