ubuntu - 部署编译软件的更快方法
问题描述
我正在做一个项目,我将不得不部署大量带有特定软件的服务器。目前,我可以使用标准的 Ubuntu 存储库,但是这些存储库中的软件版本(v1.0)比开发人员提供的当前版本(v.1.5.6)要旧得多。这让我下载了源代码,然后在我打算发送出去的每台服务器上本地构建。构建这个特定的软件大约需要一个小时,所以我开始思考有更好的做事方式。
在谷歌搜索这样一个解决方案时,我看到有很多可能性,但我想让 SO 了解我是否走在正确的道路上。如果我正确理解这一点,我可以创建一个包,然后将其放在 PPA(我相信它会公开可用)或我可以站起来的私人 repo 上。任何一种选择都可以,这不是我的软件,我只是在编译它并使其可供我自己和其他人使用。
我的理解是,只要我所有的服务器上都有相同版本的 Ubuntu、架构等,我可以将它们指向这个新资源并使用 aptitude 来安装软件,而不必经历痛苦(和时间) 的编译。
这通常正确吗?我是否过于简单化了?有没有更好的方法来达到同样的结果?
解决方案
最好的方法可能是设置您自己的 APT 存储库。这可以很容易地完成,可以在这里找到一个很好的解释
为此,您还需要了解 Ubuntu 中的打包是如何工作的(这很容易)。然后你可以简单地将你的存储库添加到你的机器上。如果您部署更新,您的机器可以使用 apt upgrade 安装它。这些包还包含(在大多数情况下)预编译的二进制文件。
推荐阅读
- google-chrome - 断点上的 Chrome 调试器,如果用鼠标悬停在一个黄色对话框中,变量数据应该弹出一个黄色对话框。那不再工作了
- javascript - 从数组中获取合适的对象
- ssis - 在 SSIS 中创建父包变量是否有任何替代方法?
- reactjs - 一种在不使用 redux-thunk 或 redux-saga 中间件的情况下处理 Redux 存储上的异步状态更新的方法?
- mysql - MySQL - 我需要就地连接两个表并返回结果(不创建临时表)
- c# - Unity Ball 同步
- c++ - c++ mprotect 用于读取、写入和执行
- kubernetes-ingress - 如何安装具有固定/静态 NodePort 分配的 Istio?
- javascript - React Hooks:从同步到异步的范式转换问题
- android - 如何在抽屉导航器中定义的屏幕中打开抽屉导航器