

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

# 删除程序包或程序包版本
<a name="delete-package"></a>

可以使用 `delete-package-versions` 命令一次删除一个或多个程序包版本。要从存储库中完全删除程序包（包括所有关联的版本和配置），请使用 `delete-package` 命令。存储库中的程序包可以没有任何程序包版本。当使用 `delete-package-versions` 命令删除所有版本时，或者使用 `put-package-origin-configuration` API 操作创建没有任何版本的程序包时（请参阅[编辑程序包来源控制](package-origin-controls.md)），可能会出现这种情况。

**Topics**
+ [删除软件包 (AWS CLI)](#delete-package-CLI)
+ [删除软件包（控制台）](#delete-package-console)
+ [删除程序包版本 (AWS CLI)](#delete-package-version-CLI)
+ [删除软件包版本（控制台）](#delete-package-version-console)
+ [删除 npm 程序包或程序包版本](#delete-package-npm)
+ [删除 Maven 程序包或程序包版本](#delete-package-maven)
+ [删除程序包或程序包版本的最佳实践](#delete-package-bp)

## 删除软件包 (AWS CLI)
<a name="delete-package-CLI"></a>

您可以使用 `delete-package` 命令删除程序包，包括其所有程序包版本和配置。以下示例删除 `my_domain` 域的存储库 `my_repo` 中名为 `my-package` 的 PyPI 程序包：

```
aws codeartifact delete-package --domain my_domain --domain-owner 111122223333 \
--repository my_repo --format pypi \
--package my-package
```

示例输出：

```
{
   "deletedPackage": { 
      "format": "pypi",
      "originConfiguration": { 
         "restrictions": { 
            "publish": "ALLOW",
            "upstream": "BLOCK"
         }
      },
      "package": "my-package"
   }
}
```

您可以对同一个程序包运行 `describe-package` 来确认已删除程序包：

```
aws codeartifact describe-package --domain my_domain --domain-owner 111122223333 \
--repository my_repo --format pypi --package my-package
```

## 删除软件包（控制台）
<a name="delete-package-console"></a>

1. 在 [https://console.aws.amazon.com/codesuite/codeartifact](https://console.aws.amazon.com/codesuite/codeartifact/home) /hom AWS CodeArtifact e 打开控制台。

1. 在导航窗格中，选择**存储库**。

1. 选择要从中删除程序包的**存储库**。

1. 选择要删除的**程序包**。

1. 选择**删除程序包**。

## 删除程序包版本 (AWS CLI)
<a name="delete-package-version-CLI"></a>

可以使用 `delete-package-versions` 命令一次删除一个或多个程序包版本。以下示例删除 `my_domain` 域的 `my_repo` 中名为 `my-package` 的 PyPI 程序包的版本 `4.0.0`、`4.0.1` 和 `5.0.0`：

```
aws codeartifact delete-package-versions --domain my_domain --domain-owner 111122223333 \
--repository my_repo --format pypi \
--package my-package --versions 4.0.0 4.0.1 5.0.0
```

示例输出：

```
{
   "successfulVersions": {
      "4.0.0": {
         "revision": "oxwwYC9dDeuBoCt6+PDSwL6OMZ7rXeiXy44BM32Iawo=",
            "status": "Deleted"
      },
      "4.0.1": {
         "revision": "byaaQR748wrsdBaT+PDSwL6OMZ7rXeiBKM0551aqWmo=",
            "status": "Deleted"
      },
      "5.0.0": {
         "revision": "yubm34QWeST345ts+ASeioPI354rXeiSWr734PotwRw=",
            "status": "Deleted"
      }
   },
   "failedVersions": {}
}
```

您可以对同一个程序包运行 `list-package-versions` 来确认已删除版本：

```
aws codeartifact list-package-versions --domain my_domain --domain-owner 111122223333 \
--repository my_repo --format pypi --package my-package
```

## 删除软件包版本（控制台）
<a name="delete-package-version-console"></a>

1. 在 [https://console.aws.amazon.com/codesuite/codeartifact](https://console.aws.amazon.com/codesuite/codeartifact/home) /hom AWS CodeArtifact e 打开控制台。

1. 在导航窗格中，选择**存储库**。

1. 选择要从中删除程序包版本的**存储库**。

1. 选择要从中删除版本的**程序包**。

1. 选择要删除的**程序包版本**。

1. 选择**删除**。
**注意**  
在控制台中，可以一次仅删除一个程序包版本。要一次删除多个版本，请使用 CLI。

## 删除 npm 程序包或程序包版本
<a name="delete-package-npm"></a>

要删除 npm 程序包或单个程序包版本，请将 `--format` 选项设置为 `npm`。要删除限定范围的 npm 程序包中的程序包版本，请使用 `--namespace` 选项来指定作用域。例如，要删除程序包 `@types/react`，请使用 `--namespace types`。使用 `--namespace` 时省略 `@` 符号。

```
aws codeartifact delete-package-versions --domain my_domain --domain-owner 111122223333 \
--repository my_repo --format npm --namespace types \
--package react --versions 0.12.2
```

要删除程序包 `@types/react`，包括其所有版本，请执行以下操作：

```
aws codeartifact delete-package --domain my_domain --domain-owner 111122223333 \
--repository my_repo --format npm --namespace types \
--package react
```

## 删除 Maven 程序包或程序包版本
<a name="delete-package-maven"></a>

要删除 Maven 程序包或单个程序包版本，请将 `--format` 选项设置为 `maven`，并使用 `--namespace` 选项传递 Maven 组 ID 和使用 `--name` 选项传递 Maven artifactID，从而指定要删除的程序包。例如，下面说明了如何删除 `com.google.guava:guava` 的单个版本。

```
 aws codeartifact delete-package-versions --domain my_domain --domain-owner 111122223333 \
--repository my_repo --format maven --namespace com.google.guava \
--package guava --versions 27.1-jre
```

以下示例说明如何删除程序包 `com.google.guava:guava`，包括其所有版本：

```
 aws codeartifact delete-package --domain my_domain --domain-owner 111122223333 \
--repository my_repo --format maven --namespace com.google.guava \
--package guava
```

## 删除程序包或程序包版本的最佳实践
<a name="delete-package-bp"></a>

如果您确实需要删除程序包版本，作为最佳实践，建议您创建一个存储库来存储要删除的程序包版本的备份副本。您可以先对备份存储库调用 `copy-package-versions` 来执行此操作：

```
aws codeartifact copy-package-versions --domain my_domain --domain-owner 111122223333 --source-repository my_repo \
 --destination-repository repo-2 --package my-package --format npm \
 --versions 6.0.2 4.0.0
```

复制程序包版本后，便可对想删除的程序包或程序包版本调用 `delete-package-versions`。

```
aws codeartifact delete-package-versions --domain my_domain --domain-owner 111122223333 \
--repository my_repo --format pypi \
--package my-package --versions 4.0.0 4.0.1 5.0.0
```