Instalowałem ostatnio interpreter Rubiego i framework Rails do obsługi Redmine na serwerze. Tak się złożyło, że podczas instalacji wyskoczyło kilka błędów, które być może zmuszą Was do “podrapania się w głowę”, dlatego w dzisiejszym krótkim wpisie publikuję rozwiązanie jednego z nich.

 

Fotografia: Andrew*, CC-BY-SA.

Ruby: Błąd “no such file to load – mkmf (LoadError)”.

Idąc za jednym z wielu internetowych tutoriali zacząłem instalować kolejne paczki, najpierw samego Rubiego, potem narzędzie zarządzające pakietami gem, a na końcu same “klejnoty” potrzebne do działania frameworka Rails i samego Redmine’a. Konieczne było także zainstalowanie modułu Passenger do współpracy Rubiego z Apache.

Kiedy wydawało się, że wszystkie polecenia zakończyły się sukcesem wyskoczył dosyć dziwny i mało czytelny błąd:

(...)
Building native extensions.  This could take a while...
extconf.rb:1:in `require': no such file to load -- mkmf (LoadError)
        from extconf.rb:1

Po dłuższej chwili z czeluści Internetu wygrzebałem informację o tym, że pakiet / plik mkmf jest częścią pakietu ruby1.8-dev, którego oczywiście nie miałem zainstalowanego. Szybkie polecenie:

sudo apt-get install ruby1.8-dev

oraz powtórzenie poprzednich poleceń narzędzia gem naprawiło całą sytuację, a ja mogłem cieszyć się działającym Ruby, Railsami, Passengerem i Redmine. ;]