首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何自动设置开发环境?

如何自动设置开发环境?
EN

Stack Overflow用户
提问于 2009-05-08 11:10:57
回答 13查看 30.5K关注 0票数 80

每当新的开发人员加入团队或开发人员正在使用的计算机发生变化时,开发人员都需要做大量的工作来设置本地开发环境,以使当前项目正常工作。作为一个SCRUM团队,我们正在尝试自动化所有的事情,包括部署和测试,所以我想问的是:有没有工具或实践可以让本地开发环境设置自动化?

例如,要设置我的环境,首先我必须安装eclipse,然后是SVN、Apache、Tomcat、MySQL、PHP。在那之后,我填充了数据库,我必须在各种配置文件中做一些小的修改,等等。有没有办法把这项工作减少到一次点击?

EN

回答 13

Stack Overflow用户

回答已采纳

发布于 2009-05-08 11:55:39

有几个选项,有时这些选项的组合很有用:

  • automated installation
  • disk imaging
  • virtualization
  • source control

各种选项的详细信息:

用于自动安装和配置工作站的各种服务、工具和配置文件的

  1. Automated Installation工具:

代码语言:javascript
运行
复制
- [Puppet](https://puppet.com/) has a learning curve but is powerful.  You define classes of machines (development box, web server, etc.) and it then does what is necessary to install, configure, and keep the box in the proper state.  You asked for one-click, but Puppet by default is zero-click, as it checks your machine periodically to make sure it is still configured as desired.  It will detect when a file or mode has been changed, and fix the problem.  I currently use this to maintain a handful of RedHat Linux boxes, though it's capable of handling thousands.  (Does not support Windows as of 2009-05-08).  
- [Cfengine](http://www.cfengine.org/) is another one.  I've seen this used successfully at a shop with 70 engineers using RedHat Linux.  Its limitations were part of the reason for Puppet.
- [SmartFrog](http://en.wikipedia.org/wiki/SmartFrog) is another tool for configuring hosts.  It does support Windows.
- Shell scripts.  [RightScale](http://blog.rightscale.com/2007/08/07/configuring-servers-with-rightscripts/) has examples of how to configure an Amazon EC2 image using shell scripts.
- Install packages.  On a Unix box it's possible to do this entirely with packages, and on Windows msi may be an option.  For example, [RubyWorks](http://studios.thoughtworks.com/rubyworks) provides you with a full Ruby on Rails stack, all by installing one package that in turn installs other packages via dependencies.

  1. Disk映像当然还有disk imaging tools,用于存储已配置主机的映像,以便可以将其恢复到另一台主机。与虚拟化一样,这对于测试箱特别好,因为它很容易恢复到一个干净的石板上。保持更新仍然是一个问题--仅仅为了传播配置文件而制作新映像是否值得呢? change?
  2. 是另一种选择,例如制作Xen、VirtualPC或VMWare映像的副本来创建新主机。这对于测试箱特别有用,因为无论测试造成什么混乱,您都可以很容易地恢复到干净的、已知的状态。与磁盘映像工具一样,与自动安装/配置工具为used.
  3. Source Code Control相比,使主机保持最新需要更多的手动步骤和警觉。一旦安装/配置了必要的工具,那么进行构建就应该是检查源代码存储库中需要的内容并构建它。

目前,我使用上面的组合来自动化这个过程,如下所示:

  • 从在VMWare来宾
  • 上安装基本操作系统开始运行shell脚本以安装Puppet并从源代码中检索其配置以从源代码控制中安装tools/components/configs
  • Check out文件以构建和部署我们的web应用程序control
  • Puppet
票数 69
EN

Stack Overflow用户

发布于 2013-05-22 01:39:59

我偶然发现了这个问题,令我非常惊讶的是,还没有人提到Vagrant

正如Pete TerMaat和其他人所提到的,虚拟化是管理和自动化开发环境的一种很好的方法。流浪基本上消除了设置这些虚拟盒子的痛苦。

几分钟之内,你就可以拥有一个你最喜欢的Linux发行版的全新副本并运行起来,并且provisioned的方式和你的生产服务器完全一样。

不用再为安装PHP、MySQL等而与OSX或Windows打架了。所有软件都在虚拟机中运行。您甚至可以使用vagrant ssh通过SSH登录。如果你犯了一个错误或弄坏了什么东西,只需用vagrant destroy命令,然后用vagrant up命令重新开始。

Vagrant自动为你的本地文件系统创建一个synced folder,这意味着你不需要在虚拟机中进行开发(即.使用Vim)。使用您选择的任何编辑器。

我现在几乎为我做的每个项目都创建了一个新的“流浪者盒子”。我的所有设置都保存在项目存储库中,因此很容易引入其他团队成员。他们只需要拉回回购,然后运行vagrant up,他们就已经准备好了。

这也使得处理具有不同软件需求的项目变得更加容易。也许你有一些依赖于PHP5.3的项目,但是一些新的运行PHP5.4的项目。只需为该项目安装您想要的版本。

Check it out!

票数 20
EN

Stack Overflow用户

发布于 2009-05-08 11:19:39

重要的一点是在源代码管理中设置您的项目,以便您可以在签出后立即构建、部署和运行。

这意味着您还应该检查帮助程序基础设施,如Makefiles、ant buildfile等,以及工具的设置,如IDE项目文件。

这应该会解决单个项目的安装麻烦。

对于基本的机器设置,您可以使用标准映像。另一种选择是使用平台的工具自动安装。在Linux下,您可以创建一个meta-package,它依赖于您需要的所有包。在Windows下,使用MSI或类似的东西应该可以实现类似的事情。

编辑:

理想情况下,不是签入帮助器基础设施,而是签入允许构建生成帮助器基础设施的信息。这是GNU构建系统(autotools等)或Maven所采用的方法。这甚至更优雅,因为您(理论上)可以为任何(支持的)构建环境生成基础架构,因此您不会被绑定到某个特定的IDE,以及帮助基础架构(路径等)中的设置。不需要复制主项目设置。

然而,这也是一种更复杂的方法,所以如果你不能让它工作,我相信直接签入IDE文件之类的东西是可以接受的。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/839360

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档