Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I've spent too much time on setup & maintain a development server, which contains following tools:

  • Common services like SSH, BIND, rsync, etc.
  • Subversion, Git.
  • Apache server, which runs CGit, Trac, Webmin, phpmyadmin, phppgadmin, etc.
  • Jetty, which runs Archiva and Hudson.
  • Bugzilla.
  • PostgresSQL server, MySQL server.

I've created a lot of Debian packages, like my-trac-utils, my-bugzilla-utils, my-bind9-utils, my-mysql-utils, etc. to make my life more convenient. However, I still feel I need a lot more utils. And I've spent a lot of time to maintain these packages, too.

I think there maybe many developers doing the same things. As tools like subversion, git, trac are so common today. It's not to hard to install and configure each of them, but it took a long time to install them all. And it's time consuming to maintain them. Like backup the data, plot the usage graph and generate web reports. (gitstat for example)

So, I'd like to hear if there exist any pre-configured distro for Development Server purpose, i.e., something like BackTrack for hackers?

share|improve this question
3  
You already have metapackages for software, maybe keeping configuration files on github would help? –  Roman Grazhdan May 16 '11 at 11:38
    
I'd like to hear this for ubuntu too. –  user1249 May 16 '11 at 20:47
add comment

7 Answers

up vote 7 down vote accepted

I think you'll have to make one yourself, since I don't think there's a one-size-fits-all solution, every developer needs a unique set of tools.

However, you can create your own distribution using something like SuSE studio

Or search for linux unattended install on Google, I found some good hits.

share|improve this answer
    
Like BackTrack doesn't fit all hackers, but it's just enough for most of us. And it's a good start point to add more features and tools :) –  Xiè Jìléi May 16 '11 at 23:53
    
@谢继雷'Lenik well, to make such a distro you'd have to make choices like Eclipse vs. Netbeans, Git vs Mercurial, and Vim vs Emacs, I don't think anybody is willing to make such decisions for the users. –  Mahmoud Hossam May 17 '11 at 0:05
1  
@Mahmoud: Eclipse and Netbeans are choices for developers, not development support. And Git & Mercurial doesn't conflict each other, the distro may contain both of them, and pre-configure them as well. For example, we can let the default git root = /var/git, and the default svn root = /var/svn, and all other services like Trac and CGit will follow the default config. The user may choose this distro or not, if they choosed, they have to accept these default values then. –  Xiè Jìléi May 17 '11 at 0:54
    
@谢继雷'Lenik mercurial and git do not conflict, but having both isn't really necessary, you might end up with a very bloated distribution, besides, why did you choose jetty over tomcat? stuff like these can cause infighting among the distro developers, unless you're the only one who makes the choices. –  Mahmoud Hossam May 17 '11 at 1:19
1  
@谢继雷'Lenik I tried to find a DVD that has development packages, but couldn't find any, but [this project] is worth looking into, you can create a config file that tweaks Arch Linux to your liking. –  Mahmoud Hossam May 17 '11 at 3:03
show 3 more comments

The first solution I see is to create a standard installation, then copy it when you need.

Your version control system, bug tracking system have to be on a dedicated server if you use several machines to develop with. (Note that tools like Git let you have a distributed system.)

Another solution would be to use online services. There are plenty of them that can host your code, provide a bug tracking system, VCS, ...

I like to use virtual machines as well as development/test environment. Then you can run multiple versions without headaches (e.g. Rails 2/3, Ruby 1.8/1.9 or PHP 4/5 or Java 5/6, Tomcat 6/7, Glassfish 2/3, or Python 2.5-2.7, ...)

share|improve this answer
    
+1 for using vms - I've used VirtualBox for running Ubuntu instances before with great results. –  dodgy_coder Apr 10 '12 at 3:11
    
Another +1 for VMs. I actually use them in my own work. My standard one is Ubuntu 11.10 and has jdk7, rails, ruby, and eclipse with GIT for version control. It is good to have a quick standard environment for a multitude of uses, from hackathons, teaching, portability, etc. –  TomJ Apr 10 '12 at 14:17
add comment

My recommended distributions are Ubuntu, CentOS and OpenSUSE.

But to solve the problem in your questions, I think you can utilize the Virtual machine tools (VMWare Server, VirtualBox, etc), especially the features like snapshot or clone.

And you can wrap the installation steps/scripts by using some cross-platform tools for automated setup, such as Puppet or Chef .

It's not to hard to install and configure each of them, but it took a long time to install them all. And it's time consuming to maintain them.

The remaining part, reporting and charts, is probably not much a question after you solve the installation and configuration IMHO.

share|improve this answer
add comment

I think that you should also consider a configuration management tool such as:

After you write down scripts for configuration once, you will never have to do them again... Additionally you can use other peoples scripts to save time from writing everything (Puppet modules)

I did once something similar by writing a long bash script with lines like:

apt-get install packageXYZ
share|improve this answer
add comment

As a Noob who has played in a number of software development environments, it can be quite a headache configuring and maintaining new systems. Especially as you are adopting and learning, seeing what works for you, and then moving on.

A developer base package with the basics set up: IDE or IDE's, Web Server, DB Server of choice (or option to select during setup), text editor/s of choice, etc.

A really nice option is if something like Ubuntu One or some other cloud solution was available to save a user's configuration so that it could be restored, or ported over to multiple machines or virtual machines.

I have seen virtual machine distros for specific languages/solutions...Drupal's Quickstart comes to mind.

At any rate, I wanted to give the two cents of a noob developer.

share|improve this answer
add comment

Virtual Machines may be a good solution for you: once you've setup a baseline environment in the VM to your liking, just create a snapshot of it and you can then go back and reuse it again and again. Personally I've used the free VirtualBox software with good results running Ubuntu. This method is invaluable also for testing.

share|improve this answer
add comment

"pre-configured distro for Development Server purpose, i.e., something like BackTrack for hackers?"

In My Opinion BackTrac is not for hackers but for kids with flaming eyes.

And I totally can't understand you. What means "I've spent too much time on setup & maintain a development server" ? How often do you do it? And why so often? Usually servers are different and made once, work long.

I suggest to use Gentoo or Funtoo (Exherbo is to unstable yet) for Dev Server but not calculate or Sabayon. The goal is really high customization level so you can be sure that you can easy make job done with all your needs. You don't need compile whole system every time, just make your own Stage 4 after enough configuration. I know a lot of stable servers based on such solutions.

As well I think it does not such matters which distribution you pick. Anywhere you can find same tools for automation so any RHEL or RHEL based distribution must be fine. You must tell us exact troubles with "setup & maintain" to get objective solutions.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.