no such file to load -- iconv

Вчера когда ставил блог на FreeBSD (сначала на виртуалку, потом на продакшен сервер) и собирал Ruby Enterprise Edition столкнулся с проблемой отсутствия ruby-модуля iconv что приводило к ошибке: no such file to load – iconv:

no such file to load -- iconv
no such file to load -- iconv

Я нашел два способа решения этой проблемы.

Для начала нужно установить библиотеку libiconv, если она ещё не установлена, из пакетов или порта как описано в инструкции по ссылке.

Первый способ заключается в том что нужно установить пакет ruby-iconv, а затем просто скопировать недостающий модуль:

cp /usr/local/lib/ruby/1.8/i386-freebsd6/iconv.so /opt/ruby-enterprise-1.8.6-20090421/lib/ruby/1.8/i386-freebsd6.3/

Этот способ ИМХО не самый удачный т.к. он приводит к тому что ставится много ненужных пакетов. Собственно по этой причине я и стал искать возможность обойти этот недостаток.

Когда после сборки ruby из исходников возникает ошибка no such file to load – xxxx, это означает что один из динамически подгружаемых модулей (xxxx) не был собран т.к. возникли какие-то проблемы, например не удалось найти заголовочные файлы или библиотеки, поэтому как правило надо доустановить их и пересобрать модуль.

Для этого я зашел в каталог с исходниками ruby, где находятся расширения, и попробовал собрать Makefile для iconv используя генератор extconf.rb который находится в том же каталоге.

cd ~/ruby-enterprise-1.8.6-20090421/source/ext/iconv/
/opt/ruby-enterprise-1.8.6-20090421/bin/ruby extconf.rb

Получив такие сообщения об ошибках:

checking for iconv() in iconv.h... no
checking for iconv() in -liconv... no

Как я и говорил выше при сборке не получилось найти заголовочный файл и библиотеку iconv. Погуглив несколько минут я нашел решение. Надо указать путь к директории в которой находятся заголовочные файлы и установленные библиотеки используя ключ with-iconv-dir:

/opt/ruby-enterprise-1.8.6-20090421/bin/ruby extconf.rb --with-iconv-dir=/usr/local
make install

После этой нехитрой процедуры проблема решена.

Тэги: ruby ext
Будь всегда в курсе последних новостей блога подписавшись на новости
в формате RSS. Присоединяйся!
* * *

Добавить новый комментарий

Доступные BB теги

*

* (не будет опубликован)

(если есть)

  • Multi CAPTCHA Refresh2
  • *

1. Проверьте комментарий перед отправкой
2. Все комментарии проходят модерацию перед публикацией в блоге