code.gitea.io/gitea@v1.22.3/docs/content/usage/packages/cargo.zh-cn.md (about)

     1  ---
     2  date: "2022-11-20T00:00:00+00:00"
     3  title: "Cargo 软件包注册表"
     4  slug: "cargo"
     5  sidebar_position: 5
     6  draft: false
     7  toc: false
     8  menu:
     9    sidebar:
    10      parent: "packages"
    11      name: "Cargo"
    12      sidebar_position: 5
    13      identifier: "cargo"
    14  ---
    15  
    16  # Cargo 软件包注册表
    17  
    18  为您的用户或组织发布 [Cargo](https://doc.rust-lang.org/stable/cargo/) 软件包。
    19  
    20  ## 要求
    21  
    22  若要使用 Cargo 软件包注册表, 您需要安装 [Rust 和 Cargo](https://www.rust-lang.org/tools/install).
    23  
    24  Cargo 将可用软件包的信息存储在一个存储在 git 仓库中的软件包索引中。
    25  这个仓库是与注册表交互所必需的。
    26  下面的部分将介绍如何创建它。
    27  
    28  ## 索引仓库
    29  
    30  Cargo 将可用软件包的信息存储在一个存储在 git 仓库中的软件包索引中。
    31  在 Gitea 中,这个仓库有一个特殊的名称叫做 `_cargo-index`。
    32  在上传软件包之后,它的元数据会自动写入索引中。
    33  不应手动修改这个注册表的内容。
    34  
    35  用户或组织软件包设置页面允许创建这个索引仓库以及配置文件。
    36  如果需要,此操作将重写配置文件。
    37  例如,如果 Gitea 实例的域名已更改,这将非常有用。
    38  
    39  如果存储在 Gitea 中的软件包与索引注册表中的信息不同步,设置页面允许重建这个索引注册表。
    40  这个操作将遍历注册表中的所有软件包,并将它们的信息写入索引中。
    41  如果有很多软件包,这个过程可能需要一些时间。
    42  
    43  ## 配置软件包注册表
    44  
    45  要注册这个软件包注册表,必须更新 Cargo 的配置。
    46  将以下文本添加到位于当前用户主目录中的配置文件中(例如 `~/.cargo/config.toml`):
    47  
    48  ```
    49  [registry]
    50  default = "gitea"
    51  
    52  [registries.gitea]
    53  index = "sparse+https://gitea.example.com/api/packages/{owner}/cargo/" # Sparse index
    54  # index = "https://gitea.example.com/{owner}/_cargo-index.git" # Git
    55  
    56  [net]
    57  git-fetch-with-cli = true
    58  ```
    59  
    60  | 参数    | 描述             |
    61  | ------- | ---------------- |
    62  | `owner` | 软件包的所有者。 |
    63  
    64  如果这个注册表是私有的或者您想要发布新的软件包,您必须配置您的凭据。
    65  将凭据部分添加到位于当前用户主目录中的凭据文件中(例如 `~/.cargo/credentials.toml`):
    66  
    67  ```
    68  [registries.gitea]
    69  token = "Bearer {token}"
    70  ```
    71  
    72  | 参数    | 描述                                                                                  |
    73  | ------- | ------------------------------------------------------------------------------------- |
    74  | `token` | 您的[个人访问令牌](development/api-usage.md#通过-api-认证) |
    75  
    76  ## 发布软件包
    77  
    78  在项目中运行以下命令来发布软件包:
    79  
    80  ```shell
    81  cargo publish
    82  ```
    83  
    84  如果已经存在同名和版本的软件包,您将无法发布新的软件包。您必须先删除现有的软件包。
    85  
    86  ## 安装软件包
    87  
    88  要从软件包注册表安装软件包,请执行以下命令:
    89  
    90  ```shell
    91  cargo add {package_name}
    92  ```
    93  
    94  | 参数           | 描述         |
    95  | -------------- | ------------ |
    96  | `package_name` | 软件包名称。 |
    97  
    98  ## 支持的命令
    99  
   100  ```
   101  cargo publish
   102  cargo add
   103  cargo install
   104  cargo yank
   105  cargo unyank
   106  cargo search
   107  ```