Ужасный баг Gem install Mongrel

Когда-то я писал, как конфигурировать gems в локальную папку и обещал рассказать что грозит пользователю без прав root-a при установке mongrel. Однако пост пролежал уйму вермени в драфтах и наконец-то я созрел его опубликовать.

При попытке инсталлировать mysql (gem install mysql) или mongrel (gem install mongrel) в локальный репозитарий на “пустой” ubuntu обычно высыпает следующий пакет ошибок:


Building native extensions. This could take a while…
extconf.rb:8:in `require’: no such file to load — mkmf (LoadError)

/usr/lib/ruby/1.8/i486-linux/rubysig.h:15:19: error: errno.h: 
No such file or directory
fastthread.c: In function ‘wait_condvar’:
fastthread.c:626: warning: passing argument 1 of ‘rb_ensure’ 
from incompatible pointer type
make: *** [fastthread.o] Error 1

/usr/bin/install: cannot stat `http11.so': No such file or directory
make: *** [/home/vestel/rubygems/gems/mongrel-1.1.3/lib/http11.so] Error 1

А решается все просто: часть кода web server-a написана на C/C++, а следовательно без предварительных


vestel$ sudo apt-get install ruby1.8-dev make gcc libc6-dev build-essential

будет не обойтись. Другое дело, что если вы впредь планируете собирать и другие пакеты из исходников, то эти библиотеки и программы вам все равно пригодятся.

Любители самой воруемой системы конечно же воскликнут: “О, гемору-то!”, но мы не будем с ними спорить. Ведь мы то знаем, что им понадобиться гораздо больше бубнов, если кто-то из пользователей захочет содержать свой gem репозитарий.

Link Splash: Ruby and Friends

Итак, я уже дозрел до того, чтобы выпустить список кое-каких ссылок. Не думаю, что такие “линковочные” посты станут у меня регулярными, но все-таки надо избавляться от десятка драфтов недописанных статей. Начну с полезного, а потом об остальном:

Ruby/Rails

http://www.rubular.com/ – Сайт интерактивного составления RegExp-ов на языке Ruby c красивыми подсказками. Все очень симпотично, так что если вы используете Ruby, то прошу любить и пользовать.

Пост почти годовой давности о шаблонизаторах. Ссылаюсь ибо он пропагандирует использование двух таких удобных механизмов как HAML или Markaby. Не знаю, кому как, а мне гораздо симпатичнее написать такую обертку для кусочка кода


Markaby::Builder.new({},self) do
  div.debug_block do
    h2 "Some errors found"
    p "Please check: "
    ul.error_list do
      object.errors.each do |str_n, error_msg|
        li "#{str_n}: #{error_msg}"
      end
    end
  end
end

(альтернативная расцветка) чем громоздить встраиваемые теги в виде


  <ul class="error_list">
<% object.errors.each do |str_n, error_msg| %>
<li><%= str_n %>:<%= error_msg %></li>
<% end %>
</ul>

Я бы вряд ли вспомнил, что хотел писать об этом если бы Алексей Лапуста, который начал в своем блоге рассказывать о Apache Widgets. И большое спасибо ему за это, и за ссылочку на Юрия Рашковского с его lilu, поскольку любой из этих механизмов делает большое дело – облегчает труд программиста.

Да, кстати, если rails для вас слишком громоздкий, а ActiveRecord просто незнакомый, то гляньте на [Merb](http://merbivore.com/) – быстрый, легкий и простой. Ну и конечно нельзя не сказать о [pastie](http://pastie.caboo.se/) – удобном способе “угощать” других кусочками кода.

Friends

Ну и подводя итог ссылочных постов, хочется вспомнить и о друзьях и близких.

[Любимая супруга](http://olga-from-riga.livejournal.com) – первый блогер, кто стал регулярно писать. Даже можно сказать “нулевой”, ибо я к тому времени еще не определился сам, нужен ли мне этот ЖЖ, а она уже вступила и поддержала меня там. Так что встречайте мою ненаглядную в своих френдлентах.

[Моджо Джуджо](http://g-xboct.livejournal.com/) – начал писать в свой блог когда я только перебрался на stand-alone. Вот так вот разминулись. Пишет редко, но еще проникнется, я думаю.

[Addict Линейки](http://kukish.copperred.net) – в принципе, на его регулярном журнале заметок об этой игре не хватает только моргающей кнопки “В мире Adena уже 19 часов”, которая бы показывала его адекватное состояние. Однако, надо отдать должное – его блог генерит хороший поток трафика и я подумываю о перевешивании своего адсенса на его страницы. Тем более он давно уже не пишет и вряд ли заметит такую метаморфозу.

[Константин Неуязвимый](http://axil.copperred.net) – мой хороший друг буквально этим летом попросил сделать ему небольшой чердачек, чтобы он смог класть туда самые яркие впечатления о своей жизни. Вот такая страшная получается штука – Неуязвимый ибо Ахилес, и запасливый как настоящий гном – туда стащил массу всего полезного и прекрасного. Прошу любить и жаловать. Кстати, одна из любимых его цитат: “Воистину Виндоуз это отрыжка сверхразума

[J.L](http://ziona.wordpress.com) – думали я буду ссылаться на JL на myspace 🙂 Фигульки! Это наша, рижская ДжеЛо, которая за пояс заткнет, а затем запихнет в горящую избу всяких там разных “гламурных” слонов, считающих себя админами, а gentoo новой версией windows. Прошу любить и жаловать.

Открытия

Хочется сказать о том, что я для себя открыл пару новых блогов, которые появились без моей помощи, но которые мне приятно прорекламировать без всякого расчета на взаимность и прочих предрассудков.

[Записки с Земли](http://zemlanin.info), [Мэкаль](http://mekal88.com), [BlogerStyle](http://www.blogerstyle.com/), [Блог Соотвечественника](http://dikiy.com)

Спасибы

В первом ссылочном посте я хочу сказать очень длинное предложение с благодарностями: [Ивану Сагалаеву](http://softwaremaniacs.org/blog) – за Учебник и за то, что показал прелести блогинга в блоге технического человека, [Юлиану Тарханову](http://live.julik.nl) – за пост “Скепсис” и мое знакомство с Ruby, [Группе RoR2ru](http://groups.google.com/group/ror2ru) за то что еще не срываются отвечать на мои нубские вопросы, [N.O.B-у](http://numberoneblogger.com/) – за то, что он умеет невыкинуть ночную бредовую мысль и поддержать ее мыслителя и [Slaff-у](http://slaff.net) – за то, что его просто приятно почитать.

Кстати, все ссылки без nofollow 🙂 Специально, чтобы эти людям было приятно и полезно.