I haven't been able to locate a VM designed for mud development, so I'm putting one together myself. A lot of light weight vm's exist but none of them seem to include everything we use regularly. So, my question is, what would you, as a developer, like to see in a default VM installation?
So far - Latest gcc, g++, make etc Python, Ruby, Perl, and Lua Fluxbox for those interested in a WM I threw in Dillo and Firefox for browsers No login manager, boots to console (just use startx!) Standard lamp server Nano, Pico and Vim
The VM is currently set to use 400mhz and 128mb of memory, 5gb virtual drive. But at load, with fluxbox and Firefox running I have never gone past 64mb of memory
I make extensive use of valgrind (don't most of us?) and ccache. I know some folks on these boards have had problems with ccache, but I never have, so I'll keep using it :). It's amazing how much it helps my slow old Sempron I compile on. I've also found cproto handy for dumping prototypes out of files.
I will get all of those added in, and increase the memory to 512? David Haley - Yes, I am using VMware, but I can make standalone iso's, .vbx or whatever else people use I'm sure. They make tools to convert them. The reason I was using such a small amount of memory really is that I was worried not all VM hosting services would allow people to use that much.
EDIT: I forgot to mention this is currently being built on top of JeOS 8.04 from Ubuntu Server Edition. It seems to be the most compatible.
Why are you including graphical stuff at all, if this is a VM for running/developing text-based game servers? For MUD development, I can't imagine anyone who needs to run Firefox in an X session in a VM on their regular desktop instead of just running a browser directly on their desktop. Especially if you're worried about RAM usage (or even disk usage), you don't want to include big bloated monstrosities like Firefox or anything.
I would suggest making sure you have VM images compatible with VirtualBox, which is a highly capable cross-platform VM that is totally Free. It might be able to run VMware images, or not. Haven't checked.
Well, I agree that I personally would have no use for the graphical environment. I didn't know if other people like to use them for their VM's or not. Some people prefer to be able to edit source files using a graphical text editor, and I thought they might want to browse the web using the possibly far superior internet connection from their host. I am removing FireFox though, it's stupid resource intensive. Dillo is much faster and lighter…but if you guys agree with Elanthis and only use your VM as a console, I'll strip the rest out of there. It would give it a much smaller footprint.
Well, the more I worked on it the more bloated the system became, even using JeOS as a base. It just has too much "extra". I am in the process of putting together a linux distribution geared toward mud development/serving that will be much lighter weight. Once the distro is finished (and probably along the way for testing) I will put together VM apps for release. I have a current package list together for anyone that is interested in seeing it, but it's pretty basic right now…compiling all this crap takes forever! =)
23 Jun, 2009, quixadhal wrote in the 11th comment:
I would probably suggest PostgreSQL as well as MySQL, but there probably aren't that many people who care about having a full featured database (working foreign key constraints, stored procedures, etc).
It's worth noting that as soon as you include any graphical program, you have a huge number of dependencies pulled in. I agree that there's not much point having them if this is meant to be something running off of a desktop. And if it's supposed to be plopped on a server somewhere, you definitely don't need graphical stuff.
If people really want to use graphical editors, you can always include something like samba and have them mount the VM's drive from the host. Then they can edit the files however they please.
Why do you have to compile stuff? Aren't you just using standard packages?
Sounds good to me (or mudix, pronounced myu-dix), but I'm still unsure why you need to do this? What's wrong with using Debian or Ubuntu (server edition so you don't automatically get all the X/Gnome/KDE stuff) or something like that?
mudix is a MUD client by Marco Boomstra (I worked a fork for a number of years) which has been superceded by gmudix. So that's not a good name. :) LinMUD, DebMUD, JeMUD, or any of a number of other names are a possibility. As usual, start searching for free domain names first. :) I had to name both of my corporations based more off of what I could freaking find available to register rather than what I actually wanted to call them. (Half the time the domains aren't even used for anything, they're just parked ad domains that the owner won't sell for under $500. Should be freaking illegal to do that.)
Chris, what was wrong with JeOS, or any of the bazillion other "distro builders" out there? Are you trying to customize the core distro bit a little too much, perhaps? I've admittedly never used any of them, but I've seen quite a few roll-your-own distros created by them that had no troubles, and I can't possibly imagine what MUDs need would be incompatible with any of those.
I'm still unsure why stock Ubuntu wouldn't meet these needs, let alone something that lets you customize things further. It's not like you need to change the packaging system used.
Making your own distro makes maintenance a lot harder, because people can no longer get easy updates and upgrades from an active provider. I would only make a new distro if there were an extremely good reason to do so.
My reasoning is as follows - 1) I've never built my own linux distribution and it sounds like fun. 2) I would like the smallest possible footprint that includes everything you need. 3) Some mud admins would like a "plug and play" mud hosting environment. 4) Half of these c0ol dbZ mudrs don't know how to properly add on what they might need. 6) An OS with a smaller footprint might mean cheaper VM hosting costs. 7) To see if I can do it. 8) My wife stopped bugging me about spending too much time on the computer.
If you want package management, by far your best bet is to either derive from JeOS, from one of the Fedora-based "BYOD" tools, or from an rpath distro. Rolling your own package management is a massive undertaking, and let's be honest: users are far better off using a "big" distro with standard tools than they are using a tiny distro with half-developed home-grown tools. :)
The absolute smallest size for a distro isn't that important, really. If anybody needs to be downloading these over dial-up or something, they've got bigger problems than finding a MUD development VM. ;)
23 Jun, 2009, quixadhal wrote in the 20th comment:
You might want to use Debian's apt package management system, as you can point to your own repositories. Unless there's a license issue, I can't see why you couldn't just gut a debian distro and maintain your own apt repository, including sources.