Ultraviolet is a syntax highlighting engine that generates website/blog embeddable html and CSS. It utilizes the syntax files of the popular programmer editor TextMate for more than 50 languages and 20 themes.
I ran into the problem after adding the following line to my config/environment.rb file:
config.gem 'ultraviolet', :lib=>'uv'
And running the standard installation scripts:
rake gems:install rake db:migrate
The following error was generated:
/usr/bin/rake:19 Missing these required gems: ultraviolet You're running: ruby 220.127.116.11 at /usr/bin/ruby rubygems 1.3.7 at /home/rsepulve/.gem/ruby/1.8, /usr/lib/ruby/gems/1.8
I knew that i had already installed the ultraviolet gem so I examined the verbose error listing and noticed the following:
libonig.so.2: cannot open shared object file: No such file or directory - /usr/lib/ruby/gems/1.8/gems/oniguruma-1.1.0/lib/oregexp.so /usr/lib/ruby/gems/1.8/gems/oniguruma-1.1.0/lib/oregexp.so
I looked for this shared object/library on my machine and found it in /usr/local/lib instead of /usr/lib.
This particular library belongs to the 'oniguruma' regexp package which is one of 'ultraviolet's dependencies. This package must be downloaded and installed prior to installing 'ultraviolet'.
I solved the problem by relocating the library from the /usr/local/lib tree to the /usr/lib tree. This was accomplished by rerunning configure and make install for oniguruma using the --prefix option.
/configure --prefix='/usr' make install
Bingo! everything installs without an error and here are the results:
<div class="editBlogPost"> <div class="blogEditLeftPanel"> <% if @blog_post.errors.size > 0 %> <div id="errorExplanation"> <h2>The blog post could not be saved:</h2> <ul> <% @blog_post.errors.full_messages.each do |msg| %> <li><%= msg %></li> <% end %> </ul> </div> <% end %> <p> <%= f.label :title %><br /> <%= f.text_field :title %> </p> <p> <%= f.label :body %><br /> <%= f.text_area :body %> </p>