Сегодня решил протестировать один из своих рельсовых проектов на хостинге. Дома-то работает всё круто, а вот в продакшн-режиме не захотело. Во-первых, оказалось, что рельсы на хостинге установлены не те, во-вторых, RubyGems старый. Ладно, хоть Ruby сам работал, и на том спасибо ((-:
Первым делом я решил обновить RubyGems, чтобы в дальнейшем избежать лишних вопросов от менеджера gem'ов. Делается это так:
Первым делом я решил обновить RubyGems, чтобы в дальнейшем избежать лишних вопросов от менеджера gem'ов. Делается это так:
- Первым делом, нужно придумать путь к своему личному репозиторию гемов. Пригодится, обещаю. По-умолчанию, в последних версиях предлагается путь вида
/home/username/.gem/
. Таким образом, нужно в консоли ввести:
export GEM_HOME=~/.gem
- Затем нужно скачать последнюю версию RubyGems и, собственно, установить её. Устанавливать нужно в какое-нибудь укромное местечко внутри домашней директории. Я выбрал для этих целей
~/ruby/gem
. Последнюю версию RubyGems можно скачать с официального сайта. Сейчас последняя стабильная версия — 1.0.1
Выполняем команды:
mkdir ~/temp mkdir ~/ruby/gem cd ~/temp wget http://rubyforge.org/frs/download.php/29548/rubygems-1.0.1.tgz tar -zxf rubygems-1.0.1.tgz cd rubygems-1.0.1 ruby setup.rb all --prefix=~/ruby/gem
При удачно сложившихся обстоятельствах — установка прошла успешно. Чтобы проверить, введите в консолиgem
. Если всё успешно — выведется помощь по этой команде. Возможно, однако, появление ошибки о ненайденном файле. В таком случае, необходимо экспортировать ещё одну переменную окружения —RUBYLIB
следующей командой:
export RUBYLIB=~/ruby/gem/lib
Теперь заставим систему вызывать по словуgem
только что установленный экземпляр:
export PATH=~/ruby/gem/bin:$PATH
- Во время установки RubyGems был создан новый gem-репозиторий по адресу
~/.gem
. Подскажем системе, что гемы теперь нужно таскать оттуда:
export GEM_PATH=~/.gem
Вы видите уже вторую переменную окружения, начинающуюся аGEM_
. И обе они указывают на одну и ту же директорию, давайте разберёмся, зачем:
GEM_HOME
указывает на директорию, в которую будет происходить установка новых гемов. При желании, можно при кадой установке добавлять параметр--install-dir
, но лично мне лень, поэтому я предпочёл один раз установить переменную окружения.GEM_PATH
в свою очередь, указывает на директорию, в которой будет происходить поиск установленных гемов.