Archive | August, 2011

Хостинг на Ruby on Rails сайт при Space.bg

Използвате споделен хостинг за Ruby on Rails от Space.bg – те направиха, някои промени като това, че забраниха инсталирането на локални rubygems в профила на потребителя.

Така вариантите за инсталиране на необходими rubygems са два:

  • да им пишете за всеки необходим Ви RubyGem
  • да използвате Bundler
Използването на Bundler според мен е по-удачният вариант. Как да използваме bundler? Bundler предлага една много удобна опция “bundle install –deployment” – това е алтернатива на freeze gems.

Какво трябва да направим?

На вашата dev машина описвате всички необходими файлове в Gemfile и стартирате: bundle install –deployment. Тази команда ще инсталира всички gems, от които зависи Вашето приложение в “vendor/bundle”. В общи линии е това :) Не забравяйте да качите Gemfile.lock и .bundle/config във системата Ви за контрол на кода, от която най-вероятно правите deploy.

Някои особености: Rubygems като mysql2, unicode и т.н. изискват компилиране. След като сте качили Вашият сайт/приложение при space.bg трябва да инсталирате тези rubygems. В основната директория на Вашето приложение инсталирате подобен род rubygems по следният начин: bundle exec gem install mysql2

В така създадения production env ще трябва да излолвате bundle exec и за rake команди като например: bundle exec rake db:migrate

Rails 3, Rack 1.2.1 & Dreamhost

Ако използвате споделен хостинг за Rails 3.0.X приложения, сайтове от Dreamhost, може би сте се сблъскали със следният проблем:

You have already activated rack 1.2.1, but your Gemfile requires rack 1.2.3

Проблема идва от това, че Passenger зарежда първо Rack от системата, а не от локално инсталираните gems, ако се презареди страницата след възникване на грешката всичко ще бъде наред, а всъщност не е…

Решението:

  1. Добавете във вашият Gemfile: gem ‘rack’, ’1.2.1′
  2. Стартирайте: bundle update
  3. Премахваме всички версии на Rack по-нови от 1.2.1: gem uninstall rack -v [Версията] и резултата е:
    [wasp]$ gem list |grep rackrack (1.2.1, 1.1.0, 1.0.1, 1.0.0)
  4. touch tmp/restart.txt
  5. Вече сме доволни :)

Линукс на 20 :)

Линукс стана на 20! – The 20th Anniversary of Linux