Moving on to setting up an iCAT-enabled resource server on a virtual machine (VM)...
Setting up iRODS is documented very well in the iRODS manual, located on github. I'm just going to summarize the steps here, plus I'll include the VM setup steps.
We use virtual machines for staging because: 1) you can easily set up a grid of multiple virtual machine on a single piece of hardware, 2) your VMs can be single-purpose (you're not sending email from your iCAT server), and 3) if you make a mistake, snapshotting makes it really easy to go back to the last-known good configuration.
We use VirtualBox.
I usually set up a 64-bit Linux system with 512 MB of RAM and an 8 GB dynamically allocated virtual drive. I up the video memory to 128 MB to make the mouse pointer move a bit faster.
On this first install, I just use VirtualBox's NAT for my network connection. In a future post, I'll explain why I later decided to make this more complicated.
iRODS is supported on CentOS 5, CentOS 6, Ubuntu 10, and Ubuntu 12. These are platforms that our developers build against in our CI (continuous integration) environment. I downloaded the Kubuntu LiveCD, told VirtualBox to mount this ISO as a drive, and loaded it up.
Note, I had to install the build-essentials package ( sudo apt-get install build-essentials ) before this would work.
From irods.org. I downloaded the iCAT server .deb and the Postgres plug-in .deb.
Before installing the packages, you might as well set up your database first. For me, it was a matter of running:
$ sudo apt-get install postgresql-9.3
...
$ sudo su - postgres
postgres$ psql
psql> CREATE USER irods WITH PASSWORD 'testpassword';
psql> CREATE DATABASE "ICAT";
psql> GRANT ALL PRIVILEGES ON DATABASE "ICAT" TO irods;
psql> \q
postgres$ exit
The manual does a terrific job of explaining the rest. I just followed the "installation" section, using all the defaults, with localhost for my database hostname.
At this point, you should be able to run:
$ sudo su - irods irods$ ils
And it will "just work."
Some things to keep in mind:
This is a good start... for a limited definition of start. In the coming days, I'll create a resource server (with a virtual router detour), and then I'll set up a web client for iRODS. After that, I'll talk about setting up rules.