Skip to content

Commit e030d90

Browse files
sillyguodongearl-warren
authored andcommitted
Add chinese documentations for Packages (go-gitea#24914) (go-gitea#25016)
backport: go-gitea#24914 (cherry picked from commit 95bf09f)
1 parent ba2c902 commit e030d90

24 files changed

+2485
-6
lines changed
+133
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,133 @@
1+
---
2+
date: "2023-03-25T00:00:00+00:00"
3+
title: "Alpine 软件包注册表"
4+
slug: "alpine"
5+
draft: false
6+
toc: false
7+
menu:
8+
sidebar:
9+
parent: "packages"
10+
name: "Alpine"
11+
weight: 4
12+
identifier: "alpine"
13+
---
14+
15+
# Alpine 软件包注册表
16+
17+
在您的用户或组织中发布 [Alpine](https://pkgs.alpinelinux.org/) 软件包。
18+
19+
**目录**
20+
21+
{{< toc >}}
22+
23+
## 要求
24+
25+
要使用 Alpine 注册表,您需要使用像 curl 这样的 HTTP 客户端来上传包,并使用像 apk 这样的包管理器来消费包。
26+
27+
以下示例使用 `apk`
28+
29+
## 配置软件包注册表
30+
31+
要注册 Alpine 注册表,请将 URL 添加到已知的 apk 源列表中 (`/etc/apk/repositories`):
32+
33+
```
34+
https://gitea.example.com/api/packages/{owner}/alpine/<branch>/<repository>
35+
```
36+
37+
| 占位符 | 描述 |
38+
| ------------ | -------------- |
39+
| `owner` | 软件包所有者 |
40+
| `branch` | 要使用的分支名 |
41+
| `repository` | 要使用的仓库名 |
42+
43+
如果注册表是私有的,请在 URL 中提供凭据。您可以使用密码或[个人访问令牌]({{< relref "doc/development/api-usage.zh-cn.md#通过-api-认证" >}}):
44+
45+
```
46+
https://{username}:{your_password_or_token}@gitea.example.com/api/packages/{owner}/alpine/<branch>/<repository>
47+
```
48+
49+
Alpine 注册表文件使用 RSA 密钥进行签名,apk 必须知道该密钥。下载公钥并将其存储在 `/etc/apk/keys/` 目录中:
50+
51+
```shell
52+
curl -JO https://gitea.example.com/api/packages/{owner}/alpine/key
53+
```
54+
55+
之后,更新本地软件包索引:
56+
57+
```shell
58+
apk update
59+
```
60+
61+
## 发布软件包
62+
63+
要发布一个 Alpine 包(`*.apk`),请执行带有包内容的 HTTP `PUT` 操作,将其放在请求体中。
64+
65+
```
66+
PUT https://gitea.example.com/api/packages/{owner}/alpine/{branch}/{repository}
67+
```
68+
69+
| 参数 | 描述 |
70+
| ------------ | --------------------------------------------------------------------------------------------------- |
71+
| `owner` | 包的所有者。 |
72+
| `branch` | 分支可以与操作系统的发行版本匹配,例如:v3.17。 |
73+
| `repository` | 仓库可以用于[分组包](https://wiki.alpinelinux.org/wiki/Repositories) 或者只是 `main` 或类似的名称。 |
74+
75+
使用 HTTP 基本身份验证的示例请求:
76+
77+
```shell
78+
curl --user your_username:your_password_or_token \
79+
--upload-file path/to/file.apk \
80+
https://gitea.example.com/api/packages/testuser/alpine/v3.17/main
81+
```
82+
83+
如果您使用的是双重身份验证或 OAuth,请使用[个人访问令牌]({{< relref "doc/development/api-usage.zh-cn.md#通过-api-认证" >}})代替密码。
84+
您不能将具有相同名称的文件两次发布到一个包中。您必须首先删除现有的包文件。
85+
86+
服务器将以以下的 HTTP 状态码响应:
87+
88+
| HTTP 状态码 | 含义 |
89+
| ----------------- | ------------------------------------------ |
90+
| `201 Created` | 软件包已发布。 |
91+
| `400 Bad Request` | 软件包的名称、版本、分支、仓库或架构无效。 |
92+
| `409 Conflict` | 具有相同参数组合的包文件已存在于软件包中。 |
93+
94+
## 删除软件包
95+
96+
要删除 Alpine 包,执行 HTTP 的 DELETE 操作。如果没有文件,这将同时删除包版本。
97+
98+
```
99+
DELETE https://gitea.example.com/api/packages/{owner}/alpine/{branch}/{repository}/{architecture}/{filename}
100+
```
101+
102+
| 参数 | 描述 |
103+
| -------------- | -------------- |
104+
| `owner` | 软件包的所有者 |
105+
| `branch` | 要使用的分支名 |
106+
| `repository` | 要使用的仓库名 |
107+
| `architecture` | 软件包的架构 |
108+
| `filename` | 要删除的文件名 |
109+
110+
使用 HTTP 基本身份验证的示例请求:
111+
112+
```shell
113+
curl --user your_username:your_token_or_password -X DELETE \
114+
https://gitea.example.com/api/packages/testuser/alpine/v3.17/main/test-package-1.0.0.apk
115+
```
116+
117+
服务器将以以下的 HTTP 状态码响应:
118+
119+
| HTTP 状态码 | 含义 |
120+
| ---------------- | ------------------ |
121+
| `204 No Content` | 成功 |
122+
| `404 Not Found` | 未找到软件包或文件 |
123+
124+
## 安装软件包
125+
126+
要从 Alpine 注册表安装软件包,请执行以下命令:
127+
128+
```shell
129+
# use latest version
130+
apk add {package_name}
131+
# use specific version
132+
apk add {package_name}={package_version}
133+
```
+110
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
---
2+
date: "2022-11-20T00:00:00+00:00"
3+
title: "Cargo 软件包注册表"
4+
slug: "cargo"
5+
weight: 5
6+
draft: false
7+
toc: false
8+
menu:
9+
sidebar:
10+
parent: "packages"
11+
name: "Cargo"
12+
weight: 5
13+
identifier: "cargo"
14+
---
15+
16+
# Cargo 软件包注册表
17+
18+
为您的用户或组织发布 [Cargo](https://doc.rust-lang.org/stable/cargo/) 软件包。
19+
20+
**目录**
21+
22+
{{< toc >}}
23+
24+
## 要求
25+
26+
若要使用 Cargo 软件包注册表, 您需要安装 [Rust 和 Cargo](https://www.rust-lang.org/tools/install).
27+
28+
Cargo 将可用软件包的信息存储在一个存储在 git 仓库中的软件包索引中。
29+
这个仓库是与注册表交互所必需的。
30+
下面的部分将介绍如何创建它。
31+
32+
## 索引仓库
33+
34+
Cargo 将可用软件包的信息存储在一个存储在 git 仓库中的软件包索引中。
35+
在 Gitea 中,这个仓库有一个特殊的名称叫做 `_cargo-index`
36+
在上传软件包之后,它的元数据会自动写入索引中。
37+
不应手动修改这个注册表的内容。
38+
39+
用户或组织软件包设置页面允许创建这个索引仓库以及配置文件。
40+
如果需要,此操作将重写配置文件。
41+
例如,如果 Gitea 实例的域名已更改,这将非常有用。
42+
43+
如果存储在 Gitea 中的软件包与索引注册表中的信息不同步,设置页面允许重建这个索引注册表。
44+
这个操作将遍历注册表中的所有软件包,并将它们的信息写入索引中。
45+
如果有很多软件包,这个过程可能需要一些时间。
46+
47+
## 配置软件包注册表
48+
49+
要注册这个软件包注册表,必须更新 Cargo 的配置。
50+
将以下文本添加到位于当前用户主目录中的配置文件中(例如 `~/.cargo/config.toml`):
51+
52+
```
53+
[registry]
54+
default = "gitea"
55+
56+
[registries.gitea]
57+
index = "https://gitea.example.com/{owner}/_cargo-index.git"
58+
59+
[net]
60+
git-fetch-with-cli = true
61+
```
62+
63+
| 参数 | 描述 |
64+
| ------- | ---------------- |
65+
| `owner` | 软件包的所有者。 |
66+
67+
如果这个注册表是私有的或者您想要发布新的软件包,您必须配置您的凭据。
68+
将凭据部分添加到位于当前用户主目录中的凭据文件中(例如 `~/.cargo/credentials.toml`):
69+
70+
```
71+
[registries.gitea]
72+
token = "Bearer {token}"
73+
```
74+
75+
| 参数 | 描述 |
76+
| ------- | ------------------------------------------------------------------------------------- |
77+
| `token` | 您的[个人访问令牌]({{< relref "doc/development/api-usage.zh-cn.md#通过-api-认证" >}}) |
78+
79+
## 发布软件包
80+
81+
在项目中运行以下命令来发布软件包:
82+
83+
```shell
84+
cargo publish
85+
```
86+
87+
如果已经存在同名和版本的软件包,您将无法发布新的软件包。您必须先删除现有的软件包。
88+
89+
## 安装软件包
90+
91+
要从软件包注册表安装软件包,请执行以下命令:
92+
93+
```shell
94+
cargo add {package_name}
95+
```
96+
97+
| 参数 | 描述 |
98+
| -------------- | ------------ |
99+
| `package_name` | 软件包名称。 |
100+
101+
## 支持的命令
102+
103+
```
104+
cargo publish
105+
cargo add
106+
cargo install
107+
cargo yank
108+
cargo unyank
109+
cargo search
110+
```
+97
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
---
2+
date: "2023-01-20T00:00:00+00:00"
3+
title: "Chef 软件包注册表"
4+
slug: "chef"
5+
weight: 5
6+
draft: false
7+
toc: false
8+
menu:
9+
sidebar:
10+
parent: "packages"
11+
name: "Chef"
12+
weight: 5
13+
identifier: "chef"
14+
---
15+
16+
# Chef Package Registry
17+
18+
为您的用户或组织发布 [Chef](https://chef.io/) cookbooks。
19+
20+
**目录**
21+
22+
{{< toc >}}
23+
24+
## 要求
25+
26+
要使用 Chef 软件包注册表,您需要使用 [`knife`](https://docs.chef.io/workstation/knife/).
27+
28+
## 认证
29+
30+
Chef 软件包注册表不使用用户名和密码进行身份验证,而是使用私钥和公钥对请求进行签名。
31+
请访问软件包所有者设置页面以创建必要的密钥对。
32+
只有公钥存储在Gitea中。如果您丢失了私钥的访问权限,您必须重新生成密钥对。
33+
[配置 `knife`](https://docs.chef.io/workstation/knife_setup/),使用下载的私钥,并将 Gitea 用户名设置为 `client_name`
34+
35+
## 配置软件包注册表
36+
37+
要将 [`knife` 配置](https://docs.chef.io/workstation/knife_setup/)为使用 Gitea 软件包注册表,请将 URL 添加到 `~/.chef/config.rb` 文件中。
38+
39+
```
40+
knife[:supermarket_site] = 'https://gitea.example.com/api/packages/{owner}/chef'
41+
```
42+
43+
| 参数 | 描述 |
44+
| ------- | -------------- |
45+
| `owner` | 软件包的所有者 |
46+
47+
## 发布软件包
48+
49+
若要发布 Chef 软件包,请执行以下命令:
50+
51+
```shell
52+
knife supermarket share {package_name}
53+
```
54+
55+
| 参数 | 描述 |
56+
| -------------- | ---------- |
57+
| `package_name` | 软件包名称 |
58+
59+
如果已经存在同名和版本的软件包,则无法发布新的软件包。您必须先删除现有的软件包。
60+
61+
## 安装软件包
62+
63+
要从软件包注册表中安装软件包,请执行以下命令:
64+
65+
```shell
66+
knife supermarket install {package_name}
67+
```
68+
69+
您可以指定软件包的版本,这是可选的:
70+
71+
```shell
72+
knife supermarket install {package_name} {package_version}
73+
```
74+
75+
| 参数 | 描述 |
76+
| ----------------- | ---------- |
77+
| `package_name` | 软件包名称 |
78+
| `package_version` | 软件包版本 |
79+
80+
## 删除软件包
81+
82+
如果您想要从注册表中删除软件包,请执行以下命令:
83+
84+
```shell
85+
knife supermarket unshare {package_name}
86+
```
87+
88+
可选地,您可以指定软件包的版本:
89+
90+
```shell
91+
knife supermarket unshare {package_name}/versions/{package_version}
92+
```
93+
94+
| 参数 | 描述 |
95+
| ----------------- | ---------- |
96+
| `package_name` | 软件包名称 |
97+
| `package_version` | 软件包版本 |

0 commit comments

Comments
 (0)