From the press of the shutter-button to the final print.

Lightroom, Linux and networks

By Rannasha on Monday 15 June 2009 17:30 - Comments (9)
Categories: Computers/ICT, Photography, Views: 12.296

I like Lightroom for managing my digital photos and performing minor edits. It has, however, some major flaws, that will not be very important to most people, but that do annoy me. These flaws are:
• Lightroom only comes in Windows and MacOS flavors.
• Lightroom refuses to load catalog-files from a network share.

The second point merits a little extra information: Lightroom stores all the info about your pictures, their locations, the tweaks you've made, the keywords and whatnot in a big catalog-file. The pictures themselves may be located anywhere, on a local harddisk, a network share, a USB stick or disk, it doesn't matter. However, it won't let you store the catalog file on a network share. The reason for this (as found by Googleing) is that several users may be accessing files on the network share and Lightroom is not designed to have more than one person working with a catalog file at the same time.

Fair enough, but being the only LR user in my private network at home, I'd like to think that I'm able to restrain myself from making modifications from more than one computer at a time. The solution for this problem lies with the simple Windows command of "subst". Using the syntax
subst Z: \\networkcomputer\share

Windows (from 2000 and up, according to Wikipedia) will create a new virtual disk called "Z:" and it will lead to the network share called "share" on "networkcomputer". And with this little bit of trickery, Lightroom will, without complaining, agree to load and use catalog files located on this network share. One word of warning though: I suppose that the reason behind the inability to load catalog files from network shares is valid and that the file may become damaged and corrupted if altered by more than one computer at the same time.

Sadly, the subst-trick goes away when the computer is rebooted. To solve this, I've used the ultimate tool for automation in these modern days of 2009: The .bat file. I created a bat-file with the single subst-line and in order to make it start when I start my computer, I simply dropped it in the "Startup" folder of the Start menu in Windows XP. Since I couldn't find a similar folder in the Windows 7 RC, I made a registry-line (in the HKLM->Software->Microsoft->Windows->CurrentVersion->Run branch, details may differ as I don't remember the precise path) in the auto-start section that points to the file. Problem 2 solved!

Back to problem 1. The initial response is to privately curse the developers for not making a Linux version of the program. Did that, didn't help. Secondly, one tries Wine. Now, I didn't try it myself, but results from a Google search didn't inspire me with much confidence that it'd work. The final option was the one that did work: A virtual machine.

I had no previous experience with VMs, so I just went for the name I knew: VMware. They make a program called "VMPlayer" that is free to use. After installing it, I went to where they provide you with custom virtual machines based on some parameters you can input, such as number of processor-cores to use, memory available to the VM, diskspace, etc... I clicked through it and was offered a file to download. Armed with the file and the new VMPlayer installation, I loaded the program, opened the file and lo and behold: it was starting up. I scrambled for my Windows XP disc and installed Windows XP on it. After installing, XP started nicely. So far so good.

The next hurdle is the fact that the VM knows nothing of the host environment, so I can't access any disks from the VM other than its own virtual disk. I read that the "Shared Folders" tool that VMware offers isn't available for the free VMPlayer, so that wasn't an option. However, the VM can communicate with the host environment through a virtual network interface. So I downloaded and installed Samba and altered the configuration file (/samba/smb.conf) to create a new share on my laptop (where the entire story takes place). This did the trick, I was able to access the share from within the VM (Do a cmd -> ipconfig and pick the address listed at "Default gateway" (or something similar): this is the IP that the host environment has).

Now I could install Lightroom and it works quite well, despite the VM only having 1GB of RAM and 1 core of a Core2Duo T7300 to work with.

The conclusion of a, for me, exciting weekend of learning new computer stuff is that I can now manage my pictures both from my Win7 desktop and from my Ubuntu 8.10 (with WinXP in a VM) laptop, while both the pictures and the catalog file are located on my Ubuntu 8.04 server.