FIXED: extconf.rb:8:in `require': no such file to load — mkmf (LoadError)

While reading Linux Journal Issue 181 today, I stumbled upon a section explaining about running Ruby on Rails on Apache using an Apache module called Phusion Passenger, also known as mod_rails.

To install Passenger, I followed the instruction provided in the magazine:

sudo gem install passenger

Unxpectedly, I got the following error:

Building native extensions. This could take a while...
ERROR: Error installing passenger:
ERROR: Failed to build gem native extension.

/usr/bin/ruby1.8 extconf.rb
extconf.rb:8:in `require': no such file to load -- mkmf (LoadError)
from extconf.rb:8

Gem files will remain installed in /usr/lib/ruby/gems/1.8/gems/fastthread-1.0.7 for inspection.
Results logged to /usr/lib/ruby/gems/1.8/gems/fastthread-1.0.7/ext/fastthread/gem_make.out

What’s happening? What did I do wrong?

According to a blog post by Al Hoang, a Ruby dev package needed to be installed. Well, I wouldn’t have a clue about this!

So, to FIX this, I need to install ruby1.8-dev:

$ sudo apt-get install ruby1.8-dev
...

Now, I’m ready to install Passenger gem:

$ sudo gem install passenger
Building native extensions. This could take a while...
Successfully installed passenger-2.2.4
1 gem installed
Installing ri documentation for passenger-2.2.4...
Installing RDoc documentation for passenger-2.2.4...

Credit: Fixing ‘mkmf’ load error Ruby in Ubuntu

Pidgin – old version of libpurple and unknown protocol

Aaaahhh… I fixed the Pidgin problem with Unknow protocol just 5 minutes after the previous post was made. I’m going to write how I found out the problem and how it has been fixed. If you’re interested, keep reading.

In the previous post, I mentioned that I would removed the Pidgin package completely including its configuration file (# apt-get –purge remove pidgin.) I did and followed by re-installation of Pidgin, unfortunately, it didn’t fix anything.

Then I checked the About dialog (Help -> About), and I noticed the libpurple 2.5.4 under Pidgin 2.5.6. This must be the source of the problem! But I remember libpurple has been upgraded to 2.5.6 and it said so in Aptitude. So what could be possibly wrong?

Screenshot-About Pidgin

A while back, I have installed Pidgin from source code, however I was quite sure that it has been properly removed — I went into the Pidgin source and execute # make uninstall.Well, according to this Bug #385639, libpurple is still present in /usr/local/

kenno@san7:/usr/local/lib
$ ls
finch                      libpurple.so.0      pkgconfig  site_ruby
gnt                        libpurple.so.0.5.4  purple-2   xemacs
libpurple-client.so.0      perl                python2.4
libpurple-client.so.0.5.4  pidgin              python2.5
kenno@san7:/usr/local/lib

So, I need to remove these unwated libraries manually:

kenno@san7:/usr/local/lib
$ sudo rm libpurple*

Now, let’s run Pidgin again…and… that’s it. The problem has been fixed!
Screenshot-Add Account2

For the record, I have upgraded Pidgin to 2.5.8 (unstable package at the time of this post is written) and everything works as expected. Now, I’m back to a happy Pidgin user.

Pidgin – Protocol Unknown (FIXED)

Update: The problem has been fixed. Please see the above post.

A few weeks ago, Pidgin could not connect to Yahoo messenger server because Yahoo was changing its protocols. At the time, the Pidgin was at version 2.5.5. Then that Yahoo connection problem has been fixed in version 2.5.7 and newer of Pidgin.

Anyway, Pidgin is acting up again. This time I’m not sure what is going on, and it didn’t seem other people are experiecing the same problem – Protocol Unknown for all types of accounts.

Screenshot-Pidgin-Accounts

Suppose if I want to add a new account, nothing could be selected from the drop down list. Normally, you should be able to choose if you want to add Yahoo messenger or MSN protocols.

Screenshot-Pidgin-Add Account

I tried to remove Pidgin 2.5.8, re-install 2.5.6, it didn’t work. Then I tried to re-install 2.5.8 and the Unknow Protocol still presents. Next, I’m going to remove Pidgin (with its configuration) and hopefully I can use it again.

At the moment, I’m using Kopete 0.70.4 temporarily to connect to MSN messenger. However, it doesn’t seem to connect to Yahoo messenger either. But, I’m not going to investigate why or how to solve it.

If anyone knows how to fix this Pidgin unknown protocol problem, please share.

Remove Universal Access Preference icon from Gnome panel

One of the advantages of using GNU/Linux operating system is that you hardly have to restart it. I have Debian on my laptop and it’s been running for months, until last night. It crashed and froze. Anyway, that’s not the main point this post was written.

After restarting, I saw this new icon in the Gnome top panel (the third icon from the right):

universal_preference

Well, for the start, I don’t know what it is and I don’t think I will have a need for it either. So I wanted to remove it, but right click on this icon would do nothing. Left clicked on it would give me some setting option, but nowhere does it mention how to remove it.

Thanks to the tip from Ubutu Forum, someone has found a solution. Basically, you need to go the “Keyboard Preferences” and untick the “Accessibility features can be toggled  with keyboard shortcuts“.

The following is the step by step guide:

On Debian, from the menu panel, click on System -> Preferences -> Keyboard (alternatively, you can just type gnome-keyboard-properties from the Terminal)

Screenshot-Keyboard Preferences

Then, untick or uncheck the Accessibility features can be toggled  with keyboard shortcuts and click on Close button. The undesired icon shall disappear.

Credit: How to remove universal access from notification area

Pidgin 2.5.5 – cannot connect to Yahoo messenger

I just noticed the abnormality with Pidgin 2.5.5 (running on Debian) these few days — I couldn’t connect my Yahoo messenger account at all. According to the discussion of Bug #389278 it appears that Yahoo was trying to change its protocol.

A quick way to have Pidgin connecting to Yahoo messenger server again is to change the Pager server setting for the Yahoo account in Pidgin.

To do this, from Pidgin:

  • Manage Accounts (Ctrl + A)
  • Select the Yahoo account from the list (assuming you’ve set one up before), and click Modify
  • Click on Advanced tab, under the Yahoo Options, in the Pager server field replace scs.msg.yahoo.com with cn.scs.msg.yahoo.com

Try to connect to Yahoo messenger server again. It worked for me.

Credit: Bug #389278 in pidgin (Ubuntu)

Update:

Please cosider upgrade your Pidgin to version 2.5.7. I just upgraded mine and the problem seems to have gone away. Don’t forget to change the Page Server back to scs.msg.yahoo.com.

Debian JSON for Ruby

I tried to install JSON for Ruby via RubyGem,

# gem install json

and I got the following error message:

Building native extensions. This could take a while...
ERROR: Error installing json:
ERROR: Failed to build gem native extension.


/usr/bin/ruby1.8 extconf.rb install json
extconf.rb:1:in `require': no such file to load -- mkmf (LoadError)
from extconf.rb:1

Gem files will remain installed in /usr/lib/ruby/gems/1.8/gems/json-1.1.6 for inspection.
Results logged to /usr/lib/ruby/gems/1.8/gems/json-1.1.6/ext/json/ext/generator/gem_make.out

However, I found out in Debian, we can just install this library libjson-ruby:

$ sudo apt-get install libjson-ruby

Now, try to verify if it works:

$ irb
irb(main):001:0> require 'json'
=> true
irb(main):002:0>