0

Everytime new people start working on our project, they need to setup development environment on their computer Windows OS running on it. This contains:

  • Java
  • Eclipse as IDE
  • Tomcat
  • Maven
  • MySQL
  • ... and maybe some other tools

It takes time (because of download and install) and some people getting problems (for example because of missungerstanding setup guide)

Is it possible to simplify or maybe automate such development environment setups? My idea is to create kind of bundle and deliver it to developers. If some software need still to be installed it's also ok.

I found this question here How to automate development environment setup? but:

  1. I would like to find solution without using virtual machine if it somehow possible
  2. this question is from 2009. Maybe the things changed in last 7 years.

Thank you in advance

UPDATE

Just found two tools which looking good to me. I will try them boxstarter and chocolatey.

Community
  • 1
  • 1
Tima
  • 12,765
  • 23
  • 82
  • 125
  • 1
    i think Microsoft would say that Windows Azure is the answer. –  Jun 15 '16 at 15:32
  • @buffjape ??? could you explain more? – Tima Jun 15 '16 at 18:24
  • Take a look at Docker. – AndreaM16 Jun 15 '16 at 19:32
  • @AndreaM I did. Isn't it just about creat containers? I also had problems by installing it on Windows. As I wrote in my Update: Just found two tools boxstarter and chocolatey and will try them tomorrow – Tima Jun 15 '16 at 19:41
  • 2
    Sorry, i don't know much about Azure. In any event, this question seems too broad for stackoverflow. –  Jun 16 '16 at 08:25
  • @C8H10N4O2 stackoverflow is for Developers. Isn't it? And I searched at SuperUser before I asked here. I found this question is indirectly a programming question. Otherwise all eclipse questions should be asked elsewhere – Tima Jun 22 '16 at 08:29
  • @C8H10N4O2 it's also not a programming question, but http://stackoverflow.com/questions/839360/how-to-automate-development-environment-setup – Tima Jun 22 '16 at 08:30
  • @C8H10N4O2 you meant "Programmers" ... didn't know about them. And you are right, it would be the better stackexchange group. Unfortunately it's not possible to move topic from one group to another one. Otherwise I would do this. – Tima Jun 22 '16 at 10:40

9 Answers9

2

I tried chocolatey (I mentioned in the update to my question). It actually does what I was looking for.

All I need is to create a script with the whole software I need to install and run it.

There are also many other nice things. Just try.

The only todo point for me is to find out what is the difference between chocolatey and boxstarter. If I understood it right, you can start boxstarter scripts from the remote server. But I don't need this.

Tima
  • 12,765
  • 23
  • 82
  • 125
  • This does not solve the configuration of your environment. How do you install and configure eclipse plugins with chocolatey? Just copying an eclipse configuration is still the easiest way. – tak3shi Jun 22 '16 at 12:15
  • @tak3shi yeap, this is still problem to be solved. And yes, I thought about copying of the eclipse configuration. But this should be created once. That means: install everything a developer need on its machine. Configure once eclipse (or other software) and store if possible the configurations. Next time just copy the configuration. To simplify things I would do install in a defined folder – Tima Jun 22 '16 at 14:57
1

In my opinion this is more like an Administrative topic.

If you walk on this path to deliver packets top your coworkers/developers, you might want to provide packets to your whole company.

There is a bunch of Software helping you to achieve this goal. This Softwaretype is called Systems Management Software (SMS)

In our company we use SCCM

Our company is big enough to have about 20 departments.

Each department has its own special softwarebundles and all departments have some standardsoftware (MS-Office for example)

It would be an enormous effort to manage all this Programs manually.

Maybe this is also an Soloution for your company

lokusking
  • 7,396
  • 13
  • 38
  • 57
1

I think that software development environment setup not ends when you have all necessary softwares installed. OK, you've installed everything, good. But then you have to make lot of configurations for example if you'd like to use a local database from your IDE you have to configure it. And I guess that's the hard part - it depends on what kind of API is presented by the installed softwares to configure them (I think it's very poor).

Another thing is that the whole process should be integrated in your company's access policy, for example which repositories can be accessed for a specific developer.

So I'd say that a tool which can solve all these issues would be the solution but we are far from that because of API limitations and many other reasons.

maestro
  • 671
  • 1
  • 13
  • 27
0

This Question mainly depends on what you want to achieve.
There are things like the download time which you simply can't avoid. You could of course pre-download them and then distribute them through your Network or USB-Drive w/e but that means you should care about updating these files regularly.

The most easy thing would definitely be some kind of Virtualization: You set everything up once and then your developers just launch that VM.

If not, you need some sort of packet management. On Debian you'd have a single apt-get command to set everything up, but that's out of your constraints.

What you should definitely look for is portable versions (which essentially means: Software which doesn't depend on the Registry), because those run out of the box. You just need to place them on the target system.

Other than that, many installers support some command line interface. Netbeans has that for example. Try to launch the installer like installer.exe /? from the Command Line and see what happens.
You want to look for options like quiet, yes (to all)

When you have them, you create a Batch File which executes them one after another. The Portable Versions are only Copy commands then.

MeFisto94
  • 157
  • 5
0

I find that the tools you mention don't need really need to be "installed", by running a program. All of them lend to being copied to a directory and then run directly. I would simply copy them from one machine to another, making sure that the folders are standardised, and use scripts to start the various components. In particular with Java, Tomcat and Eclipse (and Git), I am able to deploy to another machine in minutes.

DAB
  • 1,631
  • 19
  • 25
  • Hmmmm ... MySQL either? And you have to keep the whole software up-to-date. What about windows registry and so on. Of course, if you will use portable apps it would work, but ... – Tima Jun 21 '16 at 15:19
  • See http://dev.mysql.com/doc/refman/5.7/en/windows-install-archive.html for information on running MySQL without installation script. – DAB Jun 22 '16 at 16:15
0

Industry standard are going with these softwares Chefdk, Vagrant, Virtualbox.

Indra Uprade
  • 773
  • 5
  • 12
0

I'd have a disk image, clone that and change user permissions after or leave the administrator user for yourself and create a new user for the target user.

fd8s0
  • 1,897
  • 1
  • 15
  • 29
  • There is still the problem with keeping the whole software up-to-date – Tima Jun 22 '16 at 08:57
  • In most linux distributions that's just a one line command, in Windows... why are devs working in Windows? Don't force them to do that please. – fd8s0 Jun 22 '16 at 08:59
  • @fd8s0 How do you make sure that software you develop installs and runs in Windows or IE ? – tak3shi Jun 22 '16 at 11:57
  • Stop doing that? I'm sure some people's job include windows, sorry. But for most things these days you don't, unless you are working in gaming. I'd personally still do the image in windows even if it includes a proprietary package manager for updates. although in programming often you don't want to always update everything but want specific versions of some things – fd8s0 Jun 22 '16 at 22:47
0

If you have a good experience with Windows command line cmd you can do it by creating install.bat which is containing script to run setup on each installation file. For example, make a directory and download all your required materials like java , Eclipse IDE and other tools, then include your setup.bat on it. Zip it and send it to anyone you like.

AlkindiX
  • 40
  • 1
  • 8
  • I tried it some time ago. But it's too complicated. And you have to update your zip-"package" up-to-date. Have you read my answer? Chocolatey does everything I need: download and install everything a developer need – Tima Jun 22 '16 at 15:02
-1

Gitpod.io provides automated dev environments as a service. It is not only providing full-featured terminals based on Docker but also prebuilds your git branches, so you are ready to code immediately.

The IDE is based on the Eclipse Theia IDE, though.

Sven Efftinge
  • 3,065
  • 17
  • 17