
# 通过Linux命令行上传/获取Debian私有组件
在软件开发过程中，开发人员经常需要将自定义的私有组件上传至Debian私有依赖库，以便团队成员能够方便地获取并使用这些组件。然而，由于缺乏详细的指导文档，开发人员在使用Linux命令行进行上传时可能会遇到困难，导致组件上传失败或依赖包获取不成功。如何解决这一问题，确保私有组件能够顺利上传并被正确获取？本文档将详细介绍如何通过Linux命令行上传私有组件到Debian私有依赖库，以及如何从Debian私有依赖库中获取依赖包，帮助开发人员顺利完成组件的上传和依赖包的获取。
#### 前提条件
- 已有可用的Debian组件。
- 已有可连通公网的Linux系统主机。
- 已[创建Debian格式私有依赖库](https://support.huaweicloud.com/usermanual-cloudartifact/cloudartifact_01_0008.html)。
- 已添加当前账号对当前私有库的"上传"、"下载/查看"私有库组件权限，具体操作请参考[配置私有依赖库权限](https://support.huaweicloud.com/usermanual-cloudartifact/cloudartifact_01_0047.html)。
 
 #### 发布私有组件到Debian私有依赖库
1. 使用华为云账号[访问CodeArts Artifact的私有依赖库](https://support.huaweicloud.com/usermanual-cloudartifact/cloudartifact_01_0007.html#section0)。
2. 在仓库列表中选择Debian私有依赖库。单击页面右侧"操作指导"。
3. 在弹框中单击"下载配置指导文件"。
   
   ![](https://support.huaweicloud.com/bestpractice-cloudartifact/zh-cn_image_0000002480237156.png "点击放大")
   
   
   
4. 在Linux主机中执行以下命令，上传Debian组件。 
   ```
   curl -u <USERNAME>:<PASSWORD> -X PUT "https:// <repoUrl>/<DEBIAN_PACKAGE_NAME>;deb.distribution=<DISTRIBUTION>;deb.component=<COMPONENT>;deb.architecture=<ARCHITECTURE>" -T <PATH_TO_FILE>
   ```
   其中"USERNAME"、"PASSWORD"、"repoUrl"来源于[3]下载的配置文件中"Debian上传命令"部分。
   - USERNAME：上传文件使用的用户名，可以从Debian配置文件中获取，参考示例图片。
   
   - PASSWORD：上传文件使用的密码，可以从Debian配置文件中获取，参考示例图片。
   
   - repoUrl：上传文件使用的url，可以从Debian配置文件中获取，参考示例图片。 ![](https://support.huaweicloud.com/bestpractice-cloudartifact/zh-cn_image_0000002512397035.png "点击放大")
     "DEBIAN_PACKAGE_NAME"、"DISTRIBUTION"、"COMPONENT"、"ARCHITECTURE"来源于待上传的Debian组件。
     以组件"a2jmidid_8_dfsg0-1_amd64.deb"为例。
     
   
   - DEBIAN_PACKAGE_NAME：软件包名称，例如："a2jmidid_8_dfsg0-1_amd64.deb"。
   
   - DISTRIBUTION：发行版本，例如："trusty"。
   
   - COMPONENT：组件名称，例如："main"。
   
   - ARCHITECTURE：体系结构，例如："amd64"。
   
   - PATH_TO_FILE：Debian组件的本地存储路径，例如："/root/a2jmidid_8_dfsg0-1_amd64.deb"。 完整的命令如下图所示：
     ![](https://support.huaweicloud.com/bestpractice-cloudartifact/zh-cn_image_0000002512517015.png "点击放大")
     
   
   
   
   
5. 命令执行成功，进入私有依赖库，可找到已上传的Debian私有组件。
 
#### 从Debian私有依赖库获取依赖包
以[发布私有组件到Debian私有依赖库]中发布的Debian私有组件为例，介绍如何从Debian私有依赖库中获取依赖包。
1. 参考[发布私有组件到Debian私有依赖库]，进入Debian私有依赖库。单击页面右侧"操作指导"。
2. 在"操作指导"对话框中，"选择用途"选择"下载"，然后单击"下载公钥"，下载Debian私有依赖库的公钥文件。 
   ![](https://support.huaweicloud.com/bestpractice-cloudartifact/zh-cn_image_0000002527227438.png "点击放大")
   
   
   
   
3. 导入gpg公钥。 
   ```
   gpg --import <PUBLIC_KEY_PATH>
   ```
   PUBLIC_KEY_PATH：Debian公钥的本地存储路径，例如："artifactory.gpg.public"。
   ![](https://support.huaweicloud.com/bestpractice-cloudartifact/zh-cn_image_0000002512397039.png "点击放大")
   
   
   
4. apt导入公钥。 
   ```
   gpg --export --armor <SIG_ID> | apt-key add -
   ```
   ![](https://support.huaweicloud.com/bestpractice-cloudartifact/zh-cn_image_0000002512517017.png "点击放大")
   
   
5. apt仓库源添加。 
   打开配置指导文件（获取方法参考[发布私有组件到Debian私有依赖库]），将文件中所有"DISTRIBUTION"替换为上传Debian文件时使用的"COMPONENT"值（例如"main"），并根据下载的配置文件sources.list执行仓库源添加。
   
   
6. 仓库源添加后，使用如下命令更新仓库源。 
   ```
   apt-get update
   ```
   ![](https://support.huaweicloud.com/bestpractice-cloudartifact/zh-cn_image_0000002480237158.png "点击放大")
   
   
7. 执行以下命令，下载Debian包。其中a2jmidid为包的"PACKAGE"值，请根据实际情况修改。 
   ```
   apt download a2jmidid
   ```
   \<PACKAGE\>获取方法如下：
   下载Debian组件的Packages源数据，以a2jmidid包为例。
   ![](https://support.huaweicloud.com/bestpractice-cloudartifact/zh-cn_image_0000002512517009.png "点击放大")
   
   
 
