This content is old, and possibly out of date.
While looking at how to get syntax highlighted source back up on here after switching to Mephisto, I kept running across references to the Ultraviolet gem. Some of the dependencies are a little old (Oniguruma: Gem, Library), but the output looks very nice, from the examples I’d seen.
The problem comes in, that the Oniguruma gem won’t install without you already having the Oniguruma library installed (in a standard system location). This is a pretty well documented problem, with a simple fix.
Unfortunately, I wasn’t even able to get the gem to build at all with the original
Rakefile that comes with it, and gave up very quickly on trying to fix it. Fortunately, there is a wonderful gem out there called Jeweler. This allowed me to trivially setup a working build environment, drop in the original gem code, and get something up and running.
dir_config to the
extconf.rb, you can happily install the Oniguruma gem (provided your
LD_LIBRARY_PATH includes wherever you installed the library). This gets to be a problem, when using Passenger on a shared host (such as DreamHost), like I’m trying to do. Fortunately, there’s a way to fix this (at least on Linux). When linking in the libraries, you can tell
ld to include path information on where to look for them. This is very handy.
extconf.rb that I ended up going with:
With this, I was able to build the gem, install it locally, and still have it work with passenger. I can’t guarantee it’s the best way to do it, but it works.
I’ve put the modified Oniguruma gem on GitHub.
Until GitHub gets the gem building back up and running, you’ll have to download, and make the
.gem file yourself, unfortunately.