пʼятниця, 29 січня 2010 р.

Вирішення проблеми з wxRuby на Ubuntu 9.10

Існує баг з wxRuby на Ubuntu Karmic Koala.
Темою цього допису буде вирішення цієї проблеми, щоб зробити можливою розробку додатків у зв'язці Ruby 1.9 та wxRuby на Ubuntu 9.10.
Отже,покрокова інструкція.

Інсталяція необхідних пакетів для розробників

$ sudo apt-get install build-essential libssl-dev libreadline5 libreadline5-dev zlib1g zlib1g-dev
$ sudo apt-get install libgtk2.0-dev
$ sudo apt-get install libwxgtk2.8-0 libwxgtk2.8-0-dev

Встановлення Ruby (1.9.1)

Про те як зібрати Ruby 1.9.1 з вихідних кодів я описував тут
Коротко:
Завантажуємо останню свіжу версію Ruby (на момент написання статті це 1.9.1-p376)
Розпаковуємо архів і встановлюємо:
$ tar xzvf ruby-1.9.1-p376.tar.gz
$ ./configure --prefix=/opt/ruby191
$ make
$ make test
$ sudo make install

Встановлення змінних оточення

Оскільки Ruby ми збирали у /opt/ruby191, встановлюємо відповідні змінні оточення
$ PATH=/opt/ruby191/bin:$PATH
$ LD_LIBRARY_PATH=/opt/ruby191/lib:$LD_LIBRARY_PATH

Встановлення SWIG (1.3.38)

Спочатку видаляємо пакети SWIG з дистрибутиву якщо вони встановлені:
$ sudo apt-get remove swig swig1.3 --purge

Максимальна версія SWIG, що допускається для компіляції wxRuby - це 1.3.38.
Скачуємо архів swig-1.3.38.tar.gz з сайту www.swig.org
Розпаковуємо командою:
$ tar xzvf swig-1.3.38.tar.gz

У каталозі із вихідними кодами SWIG:
$ ./configure --prefix=/opt
...
checking for ruby... ruby
checking for Ruby header files... could not locate ruby.h...using -I/opt/ruby191/lib/ruby/1.9.1/i686-linux
checking for Ruby library... -Wl,-R -Wl,/opt/ruby191/lib -L/opt/ruby191/lib -lruby-static in /opt/ruby191/lib
...
$ make
$ sudo make install

Встановлення wxRuby (2.0.1)

Звантажуємо архів з вихідними кодами wxRuby з сайту wxruby.rubyforge.org
Розархівовуємо командою
$ tar xzvf wxruby-2.0.1.tar.gz
і в каталозі з вихідним кодом робимо:
$ rake1.9.1 WXRUBY_VERSION=2.0.1
$ strip -x lib/wxruby2.so
$ rake1.9.1 gem
$ sudo gem1.9.1 install -l wxruby-ruby19

Тестуємо

$ ruby1.9.1 /opt/ruby191/lib/ruby/gems/1.9.1/gems/wxruby-ruby19-2.0.1-x86-linux/samples/bigdemo/bigdemo.rb