我正在尝试在工作中设置一个开发服务器,理想情况下,它可以测试几个 PHP、Rails 或 Django 项目(不总是同时运行)。我在 Mac 上本地开发应用程序,然后将项目放在此服务器上,供我的实际用户(非技术人员)测试,然后再部署到生产服务器。
我的问题是,我们工作时的网络连接非常差(几乎可以忽略不计),并且执行设置服务器的常规apt-get
/ yum
/ ports
( make
, clean
, install
) 流程时,总是从某个在线存储库获取软件包。我知道我可能可以下载源代码,然后自己编译它们,但这对我来说太麻烦了。
我正在考虑两种解决方案:
计划A:
在我的 Mac 上运行服务器 VM,然后将此 VM 用作离线服务器的源存储库。我读过有关 Ubuntu 的 apt-proxy 的文章,它似乎足够好,尽管我还没有尝试过。
我不确定这是否可行,但我可以简单地apt-get install nginx --downloadonly
这样做,将包及其依赖项下载到我的 VM 中,然后我的服务器可以使用 VM 作为 apt-get 的源存储库吗?
计划 B:
在我的 Mac 上运行服务器 VM(我可以在回家时轻松设置/更新它),然后将 VM 克隆到离线开发服务器。也许我应该简单地将服务器设为 VM 主机,这样我就可以简单地复制 VM。
我认为这对于首次设置来说没问题,但后续更新将花费太长时间(克隆 VM 映像)。
如果我在 Windows 上工作,我想这会更容易,因为大多数服务都有一个安装程序文件,我可以下载然后在服务器上运行。
如果您能建议其他方法,我们将非常感激。
更新:
从迈克尔·汉普顿的回答中,我发现了一个可能的解决方案apt-cacher
。
我也发现了这个页在 Ubuntu 的网站上。
我想知道是否有比这个更好的工具。
答案1
考虑使用apt-镜像创建本地镜像。
答案2
你可以看看apt-offline
(请参阅 debian-administration.org)...
答案3
我在 VMware Fusion 上运行小型 Ubuntu devel virtual。4GB 磁盘和 512MB RAM 足以进行开发。VM 的网络处于 NAT 模式,因此即使不在 Internet 上也可以访问它。我还配置了 AFPd,以便我可以直接编辑安装共享的文件。就我使用 Django 而言,仅此而已,设置如下...Django 应用程序在我创建的某个用户帐户下运行,该用户 homedir 也是 root virtualenv
(登录时加载),我使用该用户登录 AFP。当新项目时,我只需克隆模板机器并创建新用户帐户 + virtualenv
。安装到 VMware Ubuntu 选择拥有主要虚拟化能力的内核...因此 XEN、KVM、VMware。然后应该是 DeploymnetDevOps方法...只需将 VM 文件复制到云并在线启动(可能是磁盘文件的转换或其增长到生产规模)。
答案4
我使用 apt-cacher 来构建私有云,只需使用默认设置,它就能正常工作。我是它的忠实粉丝。除非使用 apt-cacher 的位置安装 sources.list,否则您必须更新 sources.list。