
# 通过客户端上传/下载Debian组件
CodeArts Artifact支持与本地Debian客户端对接，用户A可以通过客户端的方式将本地Debian客户端中的私有组件上传至CodeArts Artifact私有依赖库，其他用户再通过客户端的方式从CodeArts Artifact私有依赖库下载用户A上传的Debian组件，实现Debian组件的共享或传递。
#### Debian组件介绍
Debian组件通常指的是通过Debian GNU/Linux发行版的包管理系统（如APT, Advanced Package Tool）发布的软件包。这些软件包包含了安装、配置和使用该软件所需的所有文件。
#### 约束与限制
不同用户账号的私有依赖库仓库密码不同，当用户以不同账号访问私有依赖库时，如果需要使用仓库密码，则需要在各仓库"操作指导"中重新下载配置文件获取仓库密码。
#### 前提条件
- 使用客户端工具为apt，请确保已安装 Ubuntu或者Debian系统 ，apt仓库源配置文件为用户根目录下的： /etc/apt/sources.list。
- 已[创建Debian仓库](https://support.huaweicloud.com/usermanual-cloudartifact/cloudartifact_01_0008.html)。
- 需要具备当前仓库的"下载/查看"权限，如需获取"下载/查看"的权限，请参考[配置私有依赖库权限](https://support.huaweicloud.com/usermanual-cloudartifact/cloudartifact_01_0047.html)配置。
 
 #### Debian配置
Debian仓库提供了apt配置，可以添加到操作系统/etc/apt/sources.list文件中：
1. 使用华为云账号[访问CodeArts Artifact的私有依赖库](https://support.huaweicloud.com/usermanual-cloudartifact/cloudartifact_01_0007.html#cloudartifact_01_0007__section1789618380209)。
2. 在私有依赖库页面选择对应的Debian仓库。
3. 在仓库页面右上角，单击"操作指导"。
4. 在"操作指导"对话框，单击"下载配置文件"即可获取配置文件。
5. 执行配置文件中的命令。 
   配置文件中提供了两种方式添加debian仓库到apt配置中，当前选择第一种方式：
   ```
   sudo sh -c "echo 'deb <REPO_URL> <DISTRIBUTION> <COMPONENT>' >> /etc/apt/sources.list"
   ```
   ```
   sudo sh -c "echo 'machine <HOST> login <USERNAME> password <PASSWORD>' >> /etc/apt/auth.conf"
   ```
   表1参数说明 
   | 参数           | 说明                                                                                                                                                                         |
   |:---|:---|
   | REPO_URL     | 仓库地址，可以从配置文件中获取。                                                                                                                                                           |
   | HOST         | 仓库地址中的域名.                                                                                                                                                                  |
   | DISTRIBUTION | 发行版本名称，dists目录下第一层目录名称，如下图所示。 ![](https://support.huaweicloud.com/usermanual-cloudartifact/zh-cn_image_0000002517640716.png "点击放大") |
   | COMPONENT    | 组件名称，dists目录下第二层目录名称，如下图所示。 ![](https://support.huaweicloud.com/usermanual-cloudartifact/zh-cn_image_0000002549320567.png "点击放大")     |
   | USERNAME     | 用户名称，可以从配置文件中获取。                                                                                                                                                           |
   | PASSWORD     | 用户密码，可以从配置文件中获取。                                                                                                                                                           |
      
   
   
**下载GPG公钥**
1. 使用华为云账号[访问CodeArts Artifact的私有依赖库](https://support.huaweicloud.com/usermanual-cloudartifact/cloudartifact_01_0007.html#cloudartifact_01_0007__section1789618380209)。
2. 在私有依赖库页面选择对应的Debian仓库。
3. 在仓库页面右上角，单击"操作指导"。
4. 在"操作指导"对话框，单击"下载公钥"获取GPG公钥，如下图所示。 
   ![](https://support.huaweicloud.com/usermanual-cloudartifact/zh-cn_image_0000002546026775.png "点击放大")
   
   
5. 添加GPG公钥。 
   执行以下三个命令添加GPG公钥。
   ```
   gpg --import <PUBLIC_KEY>
   gpg --list-signatures
   gpg --export --armor <SIG_ID> | apt-key add -
   ```
   参数说明：
   - \[PUBLIC_KEY\]: 下载得到的GPG公钥路径。
   
   - \[SIG_ID\]：执行gpg --import \<PUBLIC_KEY\> 后获取得到，参考下图： ![](https://support.huaweicloud.com/usermanual-cloudartifact/zh-cn_image_0000002514386912.png "点击放大")
     
   
   
   
   
6. 执行如下命令可刷新本地缓存。 
   ```
   apt-get update
   ```
   
   
 
#### 通过客户端发布Debian组件
本地客户端可以使用REST接口发布Debian组件到私有依赖库，例如：
```
curl -k -u "<USERNAME>:<PASSWORD>" -X PUT " <REPO_URL>/<DEBIAN_PACKAGE_NAME>;deb.distribution=<DISTRIBUTION>;deb.component=<COMPONENT>;deb.architecture=<ARCHITECTURE>" -T <PATH_TO_FILE>
```
其中的参数说明如下表所示。
表2参数说明 
| 参数           | 说明                                                                                                                                                                          |
|:---|:---|
| REPO_URL     | 仓库地址，可以从配置文件中获取。                                                                                                                                                            |
| DISTRIBUTION | 发行版本名称，dists目录下第一层目录名称，如下图所示。 ![](https://support.huaweicloud.com/usermanual-cloudartifact/zh-cn_image_0000002549240725.png "点击放大") |
| COMPONENT    | 组件名称，dists目录下第二层目录名称，如下图所示。 ![](https://support.huaweicloud.com/usermanual-cloudartifact/zh-cn_image_0000002549241069.png "点击放大")    |
| USERNAME     | 用户名称，可以从配置文件中获取，请参考[Debian配置]。                                                                                                 |
| PASSWORD     | 用户密码，可以从配置文件中获取，请参考[Debian配置]。                                                                                                 |
| PATH_TO_FILE | 本地文件路径。                                                                                                                                                                     |
   
#### 通过客户端下载Debian组件
1. 参考[Debian配置]，配置当前Debian仓库为apt源，并添加GPG公钥。
2. 执行以下命令下载组件。 
   ```
   apt download <PACKAGE>
   ```
   其中，\<PACKAGE\>是指定的包名。
   
   
 
