Archive for the ‘how-tos’ category

VuFind with Ubuntu

July 30, 2007

This is an old version. Please view the updated post at

A beta release VuFind was recently released as an ILS replacement by Villinova. However, getting it to run properly on my virtualized server was a bit of an adventure. So, in order to spare others, here are some development notes for installing VuFind 0.5 on Ubuntu.

Most of this you can copy and past into a bash script (in fact, that’s where I put most of this stuff). As soon as I get a chance, I’m going to build an installer for this, but in the mean time:

Upgrade your distribution:

sudo apt-get -y dist-upgrade

Install some needed base packages

sudo apt-get -y install subversion ssh build-essential sun-java5-jdk

You can use the sun-java6-jdk, just make sure to update the code further down that sets the JAVA_HOME variable.

Next, install and configure Apache2 to use mod_rewrite

sudo apt-get -y install apache2
sudo ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled
sudo /etc/init.d/apache2 reload

Currently, the subversion repository doesn’t have all the files to run Tomcat, so you need to grab both

svn co /usr/local/vufind
tar -zxvf VUFind-0.5.tgz
cd VUFind-0.5
sudo rm -rf /usr/local/vufind/solr
sudo mv solr /usr/local/vufind

Next, change the permissions on the cache and compile folders

chown www-data:www-data /usr/local/vufind/web/interface/compile
chown www-data:www-data /usr/local/vufind/web/interface/cache

Install and configure MySQL

sudo apt-get -y install mysql-server
mysqladmin -u root create vufind

Install and configure PHP 5 and the required libraries

sudo apt-get -y install php5 php-pear php5-ldap php5-mysql php5-xsl php5-pspell aspell aspell-en

Note, this doesn’t include the PDO_OCI library for dealing with Oracle. You’ll need to grab that one if you need it.

Install YAZ (updated 8/1/07)

sudo apt-get -y install yaz

Build YAZ from the source files

tar -zxvf yaz-3.0.8.tar.gz
cd yaz-3.0.8
sudo make install

There’s an issue with the default version of PEAR installed with PHP on Ubuntu and you’ll need to upgrade this…

sudo pear upgrade PEAR

You may also want to edit the install script that’s included in the package to read

mv Smarty-2.6.18/libs* $PHPDIR/Smarty

You’ll need to set up Apache and MySQL still…

In /etc/apach2/apache2.conf add the following lines:

Alias /vufind /use/local/vufind/web

<Directory /use/local/vufind/web/>
AllowOverride ALL
Order allow,deny
allow from all

and reload

sudo /etc/init.d/apache2 reload

Now set up your JAVA_HOME environmental variable. Since this is a global (at least for me), I put it in /etc/environment


Note, if you just the sun-java6-jdk, be sure to change the above line to


You can run source on this file to pick up the variable, but because you’ll probably sudo in a development environment, it’s probably easier just to reboot the system.

Lastly, set up MySQL data tables

mysql -u root
GRANT ALL ON vufind.* TO vufind@localhost IDENTIFIED BY "secretPassword";

mysql -u vufind -p vufind < mysql.sql

This is a change from the provided documentation as it creates a new user (so you’re not running the database as root). Also, you’ll want to be sure to change the default root password of nothing to something other than that.

Now, if everything has gone nicely, you should be able to run the Solr server now. You do have to be in the /usr/local/vufind directory in order for this to start properly.

cd /usr/local/vufind

Make sure everything is running now. Check out your systems at


Lastly, a small change in running the yaz-marcdump from the example. The utillity will be happier with

yaz-marcdump -f MARC-8 -t UTF-8 -X marcFile.mrc > catalog.xml

if you’ve installed the debian package. If you’ve installed from the source, use the example code

yaz-marcdump -f MARC-8 -t UTF-8 -o marcxml records.marc > catalog.xml

Hopefully this will save some folks some hunting…

Explaining RSS & Serendipity on the Internet

September 22, 2006

RSS is a concept that I have a difficult time describing in a way that doesn’t result in a thought baloon with Huh? appearing over the listener’s head. Stephanie Quilao over at Back In Skinny Jeans does a terrific job with her post, How to explain RSS the Oprah way. In tech-speak, RSS is “Really Simple Syndication.” In Oprah-speak, it is “Ready for some stories.” Read Stephanie’s explanation regardless of your experience. If you know nothing about RSS, the scales will fall from your eyes. If you are a whiz with RSS, it will help you explain it to your colleagues.

When you go to Back in Skinny Jeans you might ask yourself, “What earthly reason does Mack have for going to a web site about beauty and weight loss?” My arrival there is an example of how information is distributed across the Internet and how unlikely connections are made. The sequence went like this:

  1. Stephanie posts the article to her blog
  2. Steve Rubel on the Micro Persuasion blog posts about it later that day.
  3. Jill Stover picks up the story from Micro Persuasion and blogs about it today on her blog, Library Marketing-Thinking Outside the Book. Jill is the Undergraduate Services Librarian at VCU, by the way.
  4. I’m a subscriber to Library Marketing, I read Stephanie’s “how to …”, and wrote this blog entry.

There are three degrees of separation between me and the original blog entry. If I didn’t subscribe to blogs, I might not have run across Stephanie’s blog entry since weight loss and beauty would not ordinarily be interest triggers for me. But because I subscribe to 153 blogs (soon to be 154 after I add Micro Persuasion) this sort of unlikely linkage is less remarkable than you might think. On the Internet you really can’t predict where something of interest will turn up. So read a lot, read broadly, and follow links – there is a lot of good stuff out there.