code.gitea.io/gitea@v1.22.3/docs/content/usage/packages/chef.zh-cn.md (about) 1 --- 2 date: "2023-01-20T00:00:00+00:00" 3 title: "Chef 软件包注册表" 4 slug: "chef" 5 sidebar_position: 5 6 draft: false 7 toc: false 8 menu: 9 sidebar: 10 parent: "packages" 11 name: "Chef" 12 sidebar_position: 5 13 identifier: "chef" 14 --- 15 16 # Chef Package Registry 17 18 为您的用户或组织发布 [Chef](https://chef.io/) cookbooks。 19 20 ## 要求 21 22 要使用 Chef 软件包注册表,您需要使用 [`knife`](https://docs.chef.io/workstation/knife/). 23 24 ## 认证 25 26 Chef 软件包注册表不使用用户名和密码进行身份验证,而是使用私钥和公钥对请求进行签名。 27 请访问软件包所有者设置页面以创建必要的密钥对。 28 只有公钥存储在Gitea中。如果您丢失了私钥的访问权限,您必须重新生成密钥对。 29 [配置 `knife`](https://docs.chef.io/workstation/knife_setup/),使用下载的私钥,并将 Gitea 用户名设置为 `client_name`。 30 31 ## 配置软件包注册表 32 33 要将 [`knife` 配置](https://docs.chef.io/workstation/knife_setup/)为使用 Gitea 软件包注册表,请将 URL 添加到 `~/.chef/config.rb` 文件中。 34 35 ``` 36 knife[:supermarket_site] = 'https://gitea.example.com/api/packages/{owner}/chef' 37 ``` 38 39 | 参数 | 描述 | 40 | ------- | -------------- | 41 | `owner` | 软件包的所有者 | 42 43 ## 发布软件包 44 45 若要发布 Chef 软件包,请执行以下命令: 46 47 ```shell 48 knife supermarket share {package_name} 49 ``` 50 51 | 参数 | 描述 | 52 | -------------- | ---------- | 53 | `package_name` | 软件包名称 | 54 55 如果已经存在同名和版本的软件包,则无法发布新的软件包。您必须先删除现有的软件包。 56 57 ## 安装软件包 58 59 要从软件包注册表中安装软件包,请执行以下命令: 60 61 ```shell 62 knife supermarket install {package_name} 63 ``` 64 65 您可以指定软件包的版本,这是可选的: 66 67 ```shell 68 knife supermarket install {package_name} {package_version} 69 ``` 70 71 | 参数 | 描述 | 72 | ----------------- | ---------- | 73 | `package_name` | 软件包名称 | 74 | `package_version` | 软件包版本 | 75 76 ## 删除软件包 77 78 如果您想要从注册表中删除软件包,请执行以下命令: 79 80 ```shell 81 knife supermarket unshare {package_name} 82 ``` 83 84 可选地,您可以指定软件包的版本: 85 86 ```shell 87 knife supermarket unshare {package_name}/versions/{package_version} 88 ``` 89 90 | 参数 | 描述 | 91 | ----------------- | ---------- | 92 | `package_name` | 软件包名称 | 93 | `package_version` | 软件包版本 |