After watching Peter Cooper’s Ruby Trick Shots I wanted to experiment with loading dynamic libraries in Ruby as he demoed.

Maddeningly, when I tried to require fiddle, Ruby was throwing a LoadError:

LoadError: cannot load such file -- fiddle

Digging into the RVM logs in ~/.rvm/log/ruby-1.9.3-p0, I found that when RVM compiled Ruby it failed to find the ffi.h header and subsequently did not install fiddle.

$ grep -A 2 fiddle ~/.rvm/log/ruby-1.9.3-p0/make.log 
configuring fiddle
ffi.h is missing. Please install libffi.

So, as usual this is a dependency problem and your solution is an apt-get away:

$ sudo apt-get install libffi5 libffi-dev

Now, I can finally run Peter’s code:

#!/usr/bin/env ruby

require 'fiddle'

libc = DL.dlopen ""

f =['strlen'],