KIVOX Asked: 2022-02-13 15:24:27 +0800 CST2022-02-13 15:24:27 +0800 CST 2022-02-13 15:24:27 +0800 CST 更新二进制文件的最佳方法? 772 所以我正在制作一个可以编译为二进制文件的负载均衡器。这将在多个服务器上进行扩展。 要更新,程序本身将每 5 分钟检查一次 GitHub 存储库是否有新版本,如果有新版本,它会下载并覆盖旧版本,然后运行命令systemctl restart lb。 现在我的问题是,这是一种不好的做法吗?这样做有什么缺点吗?除此之外还有更好的更新做法吗? -- 顺便说一句,运行 cronjob 并不理想。 linux service binary go 1 个回答 Voted Best Answer fuero 2022-02-13T15:39:12+08:002022-02-13T15:39:12+08:00 推荐的方法是生成一个操作系统包(.deb/.rpm/etc.)并将其提供给包管理器。 您可以利用 Github 操作来生成包,并将其上传到二进制存储库,该存储库为包存储库创建必要的元文件。 该软件包应具有重新启动服务所需的命令。 这使得更换服务单元、二进制文件和支持文件变得微不足道。大多数包管理器支持某种形式的自动更新。即使在拙劣的更新上回滚到旧版本也是微不足道的。 您可以将系统设置为在上传到包存储库后响应通过 Github 操作(webhook)调用的 HTTP 请求,从而从基于拉的轮询方法切换到仅在更新 git 时触发的基于推送的方法存储库。
推荐的方法是生成一个操作系统包(.deb/.rpm/etc.)并将其提供给包管理器。
您可以利用 Github 操作来生成包,并将其上传到二进制存储库,该存储库为包存储库创建必要的元文件。
该软件包应具有重新启动服务所需的命令。
这使得更换服务单元、二进制文件和支持文件变得微不足道。大多数包管理器支持某种形式的自动更新。即使在拙劣的更新上回滚到旧版本也是微不足道的。
您可以将系统设置为在上传到包存储库后响应通过 Github 操作(webhook)调用的 HTTP 请求,从而从基于拉的轮询方法切换到仅在更新 git 时触发的基于推送的方法存储库。