软件商店实现安装下载第三方软件包功能
发布时间: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 还是使用标准化第三方秘钥,都实数不易。以上问题为了简化且避免一些环境问题等情况,编写了自动化脚本化繁为简, 实现高效稳定部署。