生态社区

技术文档

软件商店实现安装下载第三方软件包功能

发布时间:2023-05-31    浏览次数:569次    作者:湖南省计算产业生态创新中心 (长沙)

问题描述: 

1. 客户是否可以在软件商店实现安装下载第三方软件包功能 

2. 部署文档需测试部署验证,是否存在部署困难 

3. 发布工具存在签名问题,服务端与客户端如何导入秘钥,而公钥如何批量传给已安装系统的客户端 

解决思路:

1. 查询资料与同事探讨,可以实现第三方软件包发布功能,且签证其可行性 

2. 将部署中的所有困难与断点排查干净,最终形成完整文档 

3. 签名问题可自签名尝试可用性或其他途径,批量推送可参考其他产品成熟方案 

解决方法: 

1. 方案可行性 

通过整理部署过程,第三方软件包发布测试可用。可以实现软件商店安装与下载功能。

2. 部署步骤 

1) 前期准备 

2) 进入 U 系环境 

3) 安装各种所需包 

4) 安装 archive-man

5) 设置本地源 

6) 认证签名 

7) 导入秘钥 

8) 发布软件 

9) 配置管理后台 

注意:本文档包含公司内部信息,仅限于内部参考使用,不得外发。

10) 验证测试完成 

11) 步骤相对繁琐,需花时间耐心部署。 

12) 后续通过编写脚本完成自动化部署,可简化大量安装步骤与风险。 

3. 签名问题 

秘钥可通过参考更新管理器已有秘钥实施。 

针对已安装过的终端,可通过更新管理器批量处理,另需研发同事通过公司 

主源私钥重新签名一遍第三方公钥软件包,此处签名是所有系统在出库时自带的 

秘钥,所以可以直接发布安装,最终静默推送给客户,客户可通过重启电脑或不 

关机状态等待 1~2 天,也可以主动点击更新管理器完成软件更新。针对未安装的终端,可通过在制作母盘时,将公钥提前安装即可。 

4.编译脚本(U 系)

按照部署文档,经过测试,查漏补缺后,编辑成规范文档,同时将繁琐的方 

式编辑成自动化脚本,快速有效的实现发布功能,实现部署可用脚本一键安装部 

署发布工具。 

脚本帮助展示 

sudo bash publish_apt_u_v4x86.sh -h

Usage: bash publish_apt_u.sh [--help] <command> [<args>...]

Options:

-h, --help: 打印使用方法 

-i, --install: 安装发布软件源工具 

-p, --publish:重新发布软件源 

-r, --remove:移除软件源中包 

-m,--move:新增软件源中包 

-s, --show:显示源中已有包 

通过-i 即可一键安装 archive-man 工具,实现简单高效的部署 

最终客户端可以实现软件商店第三方软件安装与卸载。 

问题总结: 

签名的作用,发布仓库源相当于用 gpg 的私钥对仓库源的索引文件生成了一 

个数字签名并附在索引文件上面,客户端进行包安装的时候用 gpg 的公钥验证此 索引文件是否被篡改。 

目前已适配了服务器 V10sp1-arm64 和 V4sp2-x86 版本均可用,客户端为 

V10-0710-arm64 版本,在部署软件商店发布工具过程中,经历过大量实践测试, 

搜集资料,不断思考,不断总结,不断修正,最终将部署成功的经验编辑成一套 

标准化的文档,方便后续同事参考部署。 

不同环境部署可能存在差异,往往一个问题可能会困扰很久。导入问题,发布问题,包无法显示等问题,无论是自建 gpg 还是使用标准化第三方秘钥,都实数不易。以上问题为了简化且避免一些环境问题等情况,编写了自动化脚本化繁为简, 实现高效稳定部署。