在 Linux 或 macOS 上安装Amazon Tools for PowerShell
本主题提供有关如何在 Linux 或 macOS 上安装Amazon Tools for PowerShell的说明。
设置概述
若要在 Linux 或 macOS 计算机上安装Amazon Tools for PowerShell,可以从两个程序包选项中选择:
-
AWS.Tools – Amazon Tools for PowerShell 的模块化版本。每个 Amazon 服务都由其自己的小模块以及共享的支持模块
提供支持。AWS.Tools
.Common -
AWSPowerShell.NetCore – Amazon Tools for PowerShell 的单一大模块版本。所有 Amazon 服务都由这个单一大模块支持。
在运行 Linux 或 macOS 的计算机上设置这些事项涉及以下任务,本主题后面将详细介绍:
-
在支持的系统上安装 PowerShell Core 6.0 或更高版本。
-
安装 PowerShell Core 后,通过在系统 Shell 中运行
pwsh
来启动 PowerShell。 -
安装
AWS.Tools
或 AWSPowerShell.NetCore。 -
运行相应的
Import-Module
cmdlet 以将模块导入到 PowerShell 会话中。 -
运行 Initialize-AWSDefaultConfiguration cmdlet 以提供您的 Amazon 凭证。
Prerequisites
确保您满足设置Amazon Tools for PowerShell的先决条件上列出的要求。
若要运行 Amazon Tools for PowerShell Core,您的计算机必须运行 PowerShell Core 6.0 或更高版本。
-
有关支持的 Linux 平台版本的列表,以及有关如何在基于 Linux 的计算机上安装最新版本 PowerShell 的信息,请参阅 Microsoft 网站上的在 Linux 上安装 PowerShell
。尚未正式支持某些基于 Linux 的操作系统(如 Arch、Kali 和 Raspbian),但提供各种级别的社区支持。 -
有关支持的 macOS 版本的列表,以及有关如何在 macOS 上安装最新版本 PowerShell 的信息,请参阅 Microsoft 网站上的在 macOS 上安装 PowerShell
。
在 Linux 或 macOS 上安装 AWS.Tools
您可以在运行 PowerShell Core 6.0 或更高版本的计算机上安装Amazon Tools for PowerShell的模块化版本。有关如何安装 PowerShell Core 的信息,请参阅 Microsoft PowerShell 网站上的安装各种版本的 PowerShell
您可以通过以下三种方式之一安装 AWS.Tools
:
-
使用
AWS.Tools.Installer
模块中的 cmdlet。AWS.Tools.Installer
模块简化了其他AWS.Tools
模块的安装和更新。AWS.Tools.Installer
需要使用更新版本的PowerShellGet
并会自动下载和安装它。AWS.Tools.Installer
模块还会自动保持您的模块版本同步。当您安装或更新到一个模块的较新版本时,AWS.Tools.Installer
中的 cmdlet 会自动将所有其他AWS.Tools
模块更新为同一版本。 -
从
AWS.Tools.zip
下载模块并将它们提取到其中一个模块目录中。您可以通过输出$Env:PSModulePath
变量的值来查找模块目录。 -
使用
Install-Module
cmdlet 从 PowerShell 库安装每个服务模块,如以下过程中所述。
使用模块安装 cmdlet 在 Linux 或 macOS 上安装 AWS.Tools
的步骤
-
通过运行以下命令启动 PowerShell Core 会话。
$
pwsh
注意 除非所处理的任务需要,否则我们建议您不要 以具有提升权限的管理员身份运行 PowerShell。这是因为此操作具有潜在的安全风险,并且不符合最低特权原则。
-
要使用
AWS.Tools
模块安装模块化的AWS.Tools.Installer
程序包,请运行以下命令。PS >
Install-Module -Name AWS.Tools.Installer
Untrusted repository You are installing the modules from an untrusted repository. If you trust this repository, change its InstallationPolicy value by running the Set-PSRepository cmdlet. Are you sure you want to install the modules from 'PSGallery'? [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "N"):
y
如果您收到关于存储库 “不受信任” 的通知,系统会询问您是否仍要安装。输入
y
以允许 PowerShell 安装模块。为了在不信任存储库的情况下避免出现提示并安装模块,您可以运行以下命令。PS >
Install-Module -Name AWS.Tools.Installer -Force -
现在,您可以为要使用的每个服务安装模块。例如,以下命令将安装 IAM 模块。此命令还会安装指定模块工作所需的任何依赖模块。例如,当您安装第一个
AWS.Tools
服务模块时,它还会安装AWS.Tools.Common
。这是所有 Amazon 服务模块所需的共享模块。它还会删除模块的较早版本,并将其他模块更新到相同的较新版本。PS >
Install-AWSToolsModule AWS.Tools.EC2,AWS.Tools.S3 -CleanUp
Confirm Are you sure you want to perform this action? Performing the operation "Install-AWSToolsModule" on target "AWS Tools version 4.0.0.0". [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "Y"): Installing module AWS.Tools.Common version 4.0.0.0 Installing module AWS.Tools.EC2 version 4.0.0.0 Installing module AWS.Tools.Glacier version 4.0.0.0 Installing module AWS.Tools.S3 version 4.0.0.0 Uninstalling AWS.Tools version 3.3.618.0 Uninstalling module AWS.Tools.Glacier Uninstalling module AWS.Tools.S3 Uninstalling module AWS.Tools.SimpleNotificationService Uninstalling module AWS.Tools.SQS Uninstalling module AWS.Tools.Common
注意 Install-AWSToolsModule
cmdlet 从名为PSRepository
的PSGallery
(https://www.powershellgallery.com/) 下载所有请求的模块,并将存储库视为可信来源。有关此 Get-PSRepository -Name PSGallery
的更多信息,请使用命令PSRepository
。默认情况下,这会将模块安装到
$home\Documents\PowerShell\Modules
文件夹中。若要为计算机的所有用户安装AWS.Tools
模块,您必须在以管理员身份启动的 PowerShell 会话中运行以下命令。这会将模块安装到所有用户都可以访问的$env:ProgramFiles\PowerShell\Modules
文件夹中。PS >
Install-AWSToolsModule -Name AWS.Tools.IdentityManagement -Scope AllUsers
在 Linux 或 macOS 上安装 AWSPowerShell.NetCore
要升级到 AWSPowerShell.NetCore 的更高版本,请按照 在 Linux 或 macOS 上更新 Amazon Tools for PowerShell 中的说明操作。首先卸载旧版本的 AWSPowerShell.NetCore。
您可以通过以下两种方式之一安装 AWSPowerShell.NetCore:
-
从
AWSPowerShell.NetCore.zip
下载模块并将其提取到其中一个模块目录中。您可以通过输出$Env:PSModulePath
变量的值来查找模块目录。 -
使用
Install-Module
cmdlet 从 PowerShell 库进行安装,如以下过程中所述。
使用 Install-Module cmdlet 在 Linux 或 macOS 上安装 AWSPowerShell.NetCore 的步骤
通过运行以下命令启动 PowerShell Core 会话。
$
pwsh
我们建议您不要 通过运行 sudo pwsh
来启动 PowerShell,这将以具有提升管理员权限的身份运行 PowerShell。这是因为此操作具有潜在的安全风险,并且不符合最低特权原则。
要从 PowerShell 库安装 AWSPowerShell.NetCore 单模块程序包,请运行以下命令。
PS >
Install-Module -Name AWSPowerShell.NetCore
Untrusted repository You are installing the modules from an untrusted repository. If you trust this repository, change its InstallationPolicy value by running the Set-PSRepository cmdlet. Are you sure you want to install the modules from 'PSGallery'? [Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is "N"):
y
如果您收到关于存储库 “不受信任” 的通知,系统会询问您是否仍要安装。输入 y
以允许 PowerShell 安装模块。为了在不信任存储库的情况下避免出现提示,您可以运行以下命令。
PS >
Install-Module -Name AWSPowerShell.NetCore -Force
除非您要为计算机的所有用户安装Amazon Tools for PowerShell,否则不必以根用户身份运行此命令。为此,请在您通过 sudo pwsh
启动的 PowerShell 会话中运行以下命令。
PS >
Install-Module -Scope AllUsers -Name AWSPowerShell.NetCore -Force
脚本执行
Set-ExecutionPolicy
命令在非 Windows 系统上不可用。您可以运行 Get-ExecutionPolicy
,该命令显示在非 Windows 系统上运行的 PowerShell Core 中的默认执行策略设置为 Unrestricted
。有关更多信息,请参阅 Microsoft Technet 网站上的关于执行策略
由于 PSModulePath
包含 Amazon 模块的目录的位置,因此 Get-Module -ListAvailable
cmdlet 将显示您安装的模块。
AWS.Tools
PS >
Get-Module -ListAvailable
Directory: /Users/
username
/.local/share/powershell/Modules ModuleType Version Name PSEdition ExportedCommands ---------- ------- ---- --------- ---------------- Binary 3.3.563.1 AWS.Tools.Common Desk {Clear-AWSHistory, Set-AWSHistoryConfiguration, Initialize-AWSDefaultConfiguration, Clear-AWSDefaultConfigurat…
AWSPowerShell.NetCore
PS >
Get-Module -ListAvailable
Directory: /Users/
username
/.local/share/powershell/Modules ModuleType Version Name ExportedCommands ---------- ------- ---- ---------------- Binary 3.3.563.1 AWSPowerShell.NetCore
配置 PowerShell 控制台以使用 Amazon Tools for PowerShell Core(仅限 AWSPowerShell.NetCore)
只要您在模块中运行 cmdlet,PowerShell Core 通常会自动加载模块。但由于其大小较大,因此这不适用于 AWSPowerShell.NetCore。要开始运行 AWSPowerShell.NetCore cmdlet,您必须首先运行 Import-Module AWSPowerShell.NetCore
命令。AWS.Tools
模块中的 cmdlet 不需要此操作。
初始化您的 PowerShell 会话
在安装完 Amazon Tools for PowerShell 并在基于 Linux 或基于 macOS 的系统上启动 PowerShell 时,您必须运行 Initialize-AWSDefaultConfiguration 来指定要使用的 Amazon 访问密钥。有关 Initialize-AWSDefaultConfiguration
的更多信息,请参阅 使用 Amazon 凭证。
在早期的 Amazon Tools for PowerShell 版本(3.3.96.0 之前)中,该 cmdlet 名为 Initialize-AWSDefaults
。
Versioning
Amazon 定期发布Amazon Tools for PowerShell的新版本,以支持新的 Amazon 服务和功能。要确定您安装的Amazon Tools for PowerShell版本,请运行 Get-AWSPowerShellVersion cmdlet:
PS >
Get-AWSPowerShellVersion
Tools for PowerShell Version 4.0.123.0 Copyright 2012-2019 Amazon.com, Inc. or its affiliates. All Rights Reserved. Amazon Web Services SDK for .NET Core Runtime Version 3.3.103.22 Copyright 2009-2015 Amazon.com, Inc. or its affiliates. All Rights Reserved. Release notes: https://github.com/aws/aws-tools-for-powershell/blob/master/CHANGELOG.md This software includes third party software subject to the following copyrights: - Logging from log4net, Apache License [http://logging.apache.org/log4net/license.html]
要查看当前版本的工具支持的 Amazon 服务列表,请将 -ListServiceVersionInfo
参数添加到 Get-AWSPowerShellVersion cmdlet。
要确定您正在运行的 PowerShell 版本,请输入 $PSVersionTable
以查看 $PSVersionTable
自动变量
PS >
$PSVersionTable
Name Value ---- ----- PSVersion 6.2.2 PSEdition Core GitCommitId 6.2.2 OS Darwin 18.7.0 Darwin Kernel Version 18.7.0: Tue Aug 20 16:57:14 PDT 2019; root:xnu-4903.271.2~2/RELEASE_X86_64 Platform Unix PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…} PSRemotingProtocolVersion 2.3 SerializationVersion 1.1.0.1 WSManStackVersion 3.0
在 Linux 或 macOS 上更新 Amazon Tools for PowerShell
随着Amazon Tools for PowerShell的更新版本定期发布,您应更新在本地运行的版本。
更新模块化 AWS.Tools
。*
要将 AWS.Tools
模块升级到最新版本,请运行以下命令。
PS >
Update-AWSToolsModule -CleanUp
此命令将更新所有当前安装的 AWS.Tools
模块,对于那些已成功更新的模块,将删除其早期版本。
Update-AWSToolsModule
cmdlet 从名为 PSRepository
的 PSGallery
(https://www.powershellgallery.com/Get-PSRepository -Name PSGallery
的更多信息,请使用命令 PSRepository
。
更新 Tools for PowerShell Core
运行 Get-AWSPowerShellVersion
cmdlet 以确定您正在运行的版本,并将此版本与 PowerShell 库
在安装 AWSPowerShell.NetCore 的更高版本之前,请卸载任何现有模块。在卸载现有程序包之前,请关闭任何打开的 PowerShell 会话。运行以下命令来卸载该程序包。
PS >
Uninstall-Module -Name AWSPowerShell.NetCore -AllVersions
在卸载程序包后,通过运行以下命令来安装更新的模块。
PS >
Install-Module -Name AWSPowerShell.NetCore
安装后,运行命令 Import-Module AWSPowerShell.NetCore
将更新的 cmdlet 加载到 PowerShell 会话中。