Заметка о том, как установить Redmine в виртуальной машине на хостинге Digital Ocean под управлением ОС Debian GNU/Linux 7.0 Wheezy, а также, как дополнить его парой полезных «в хозяйстве» плагинов и тем оформления.
UPD: Доступны:
инструкция по установке Redmine в Debian 9 Stretch с Nginx в качестве фронт-энда и инструкция по установке Redmine в Debian 8.0 Jessie с Nginx в качестве фронт-энда
В интернете масса инструкций об установке редмайна в Debian. Однако с ними всеми возникают какие-то проблемы. Связанные то с различием в версиях Redmine (между той, которую пытаешься установить и той, о которой написан мануал), то с недостатком в системе пакетов, которые были у писателя мануала, и он просто не обратил на них внимания, то с неправильной фазой луны…
В DigitalOcean даже можно сразу создать дроплет (виртуальную машину) с установленным Redmine. Однако и там не всё идеально. И настроен он не полностью, и операционная система Ubuntu, да и главное, для тех кто не совсем разбирается в устройстве приложений на фреймворке Ruby on rails, полностью установленный редмайн становится «чёрным ящиком», где ничего непонятно.
Поэтому пойдем длинным путём и все установим с нуля.
В ходе этой установки я изначально пользовался официальными мануалами с сайта redmine.org.
Кстати, если у вас нет аккаунта в DigitalOcean вы можете создать его и получить 10 долларов если пройдёте по этой ссылке: https://www.digitalocean.com/?refcode=e5a7f5c338ab
1. Предварительные требования
Нужен дроплет созданный в Digital Ocean с операционной системой Debian 7.0, 64 битной (в моём случае). Для 32-битных систем разницы быть не должно.
Предположим у нас есть свежесозданный дроплет, либо не очень свеже-, а уже набитый каким-то софтом (возможно идея установить Redmine пришла когда рабочий сервер уже был). Мощность особо не важна. Работать будет даже на самом дешевом тарифе, ну правда чем дешевле — тем неторопливее.
Также, желательно, чтобы к вашему IP-адресу был привязан какой-нибудь домен, а также его поддомены. В моём случае это mihanentalpo.me, а в качестве доменного имени для редмайна я буду использовать redmine.mihanentalpo.me
И еще, для Email-уведомлений, отправляемых Redmine’ом, вам понадобится учетная запись почты, например на Яндекс-почте (в примере я буду рассматривать её).
Кстати, если воспользоваться Яндекс-почтой для доменов, там же в комплекте есть и DNS-сервер, который позволит управлять привязками доменных имен к вашему IP.
2. Установка необходимого ПО
2.1 Установим apache в качестве веб-сервера, а также модуль «Passenger» для выполнения ruby-кода. Позже объясню почему и зачем.
Здесь и далее, все команды выполняются от имени root, если не указано другое.
apt-get update apt-get install apache2 libapache2-mod-passenger |
2.2 Установим MySql в качестве сервера баз данных, его клиент, и заголовочные файлы клиента для компиляции некоторых библиотек необходимых Redmine’у
apt-get install mysql-server mysql-client libmysqlclient-dev |
При установке (если у вас еще не было до этого установленного mysql-сервера), установщик попросит создать пароль для пользователя root mysql-сервер. Очень советую придумать хороший пароль, и где-нибудь записать его, например в KeePassX, ну или просто не забыть.
2.3 Установим еще пару девелоперских пакетов (содержащих заголовочные файлы для компиляции), они потянут за собой еще огромную кучу пакетов — придется согласиться
apt-get install libmagickcore-dev libmagickwand-dev |
2.4 Установим пакет для сборки а также imagemagick (по информации в комментариях, эти пакеты не всегда ставятся автоматически)
apt-get install imagemagick build-essential |
3. Установка самого Redmine
3.1 Зайдем на сайт редмайна
Заглянем на страницу http://www.redmine.org/projects/redmine/wiki/Download и посмотрим там ссылку на последнюю версию. В моём случае это версия 2.5.1, доступная по ссылке http://www.redmine.org/releases/redmine-2.5.1.tar.gz (нам нужна именно tar.gz)
3.2 Скачаем, распакуем и положим в /usr/local/share
cd /tmp mkdir redmine cd redmine wget http://www.redmine.org/releases/redmine-2.5.1.tar.gz tar -zxvf ./redmine-2.5.1.tar.gz mv ./redmine-2.5.1 /usr/local/share/redmine |
Кстати, знаете, как легко запомнить последовательность ключей «-zxvf» используемую для распаковки .tar.gz ? ZX — это первые буквы от легендарного компьютера «ZX Spectrum», а «VF» — это просто две буквы, одна глухая а другая звонкая, причем она обычно значит «Verbose» а другая значит «File» — хоть что-то из этих двух букв запомниь будет достаточно чтобы вспомнить вторую.
3.3 Ставим Ruby и всё что нужно для сборки компонентов редмайна (также, потянут за собой много всего):
apt-get install ruby ruby-dev rubygems libruby |
3.4 Устанавливаем bundler — это менеджер зависимостей для приложений ruby, он позволяет для каждого приложения устанавливать из репозитория ruby-пакетов именно те версии, которые нужны приложению.
gem install bundler |
gem — это программа, являющаяся интерфейсом для пакетного менеджера RubyGems. Это примерно тоже самое для ruby, что apt-get для Debian в целом.
3.5 Пришло время установить все ruby-пакеты (в ruby они называются «Gems» — камни самоцветы).
cd /usr/local/share/redmine bundle install --without development test postgresql sqlite |
Данная команда означает установить все Gem’ы, которые описаны в файле redmine/Gemfile кроме «test», «postresql», «sqlite». Если вы хотите использовать в качестве базы данных PostgreSql или Sqlite — соответственно, нужно будет написать —without mysql, а вашу базу как раз оставить.
В конце установки должно появиться сообщение:
Your bundle is complete!
Если не появилось, придётся читать ошибки и разбираться что явилось их причиной.
3.6 Создаём базу данных для редмайна
Подключаемся к mysql:
mysql -uroot -p |
Создаём базу:
[sql] CREATE DATABASE redmine CHARACTER SET utf8;[/sql]
Создаём пользователя, и даём ему все права на базу:
[sql] CREATE USER ‘redmine’@’localhost’ IDENTIFIED BY ‘ДлИнНыЙиСлОжНыЙпАрОлЬ’;GRANT ALL PRIVILEGES ON redmine.* TO ‘redmine’@’localhost’;
[/sql]
Отключаемся:
> exit
3.7 Настроим редмайн на созданную нами базу данных:
(предполагается что мы всё еще в папке /usr/local/share/redmine)
cp config/database.yml.example config/database.yml |
В папке config/ лежал файл с примерами настройки, мы взяли его за основу.
Открываем файл простейшим редактором:
Внимание! Если вы еще не знаете, что это за формат такой «yml», вот здесь можно про него узнать: http://ru.wikipedia.org/wiki/YAML, а пока скажу лишь главное — пробелы и табуляции имеют значение!
# nano config/database.yml
Находим такие вот примерно строчки:
[code] production:
adapter: mysql2
database: redmine
host: localhost
username: root
password: ""
encoding: utf8
[/code]
и соответственно меняем их, в данном случае, так как база у нас и правда называется redmine, сервер и правда называется localhost, а тип сервера и правда mysql, нужно вписать только username: redmine и password: «ваш сложный пароль для пользователя redmine».
3.8 Сгенерируем секретный ключ для хэширования сессий:
# rake generate_secret_token
При этом выскакивает ошибка:
Could not find gem ‘mysql2 (~> 0.3.11) ruby’ in the gems available on this machine.
Run `bundle install` to install missing gems.
Это означает, что нет пакета-Gem’а «mysql2». Установим его отдельно:
# gem install mysql2
После чего повторим:
# rake generate_secret_token
rake — это «Ruby make», то есть утилита аналогичная make. Также как make использует для работы Makefile, также rake использует Rakefile. То есть это — интерпретатор Rakefile, содержащий скрипты установки (и возможно, удаления) программ написанных на Ruby.
3.9 Выполним набор миграций, создающих базу данных
Перед запуском rake мы запишем в переменную окружения RAILS_ENV значение production, чтобы rake знал, о каком окружении идёт речь. Ведь у редмайна их целых 3 — development, production, и test.
# RAILS_ENV=production rake db:migrate
Если всё верно — покажется множество надписей символизирующих изменения, вносимые в базу данных миграциями.
После этого запустим миграцию, заполняющую базу начальными данными (ведь база то еще пустая)
# RAILS_ENV=production rake redmine:load_default_data
При запуске скрипт попросит выбрать язык, для русского выбираем «ru».
Выполняем шифрацию паролей, хранящихся в базе данных (хотя их там пока не много, только один)
rake db:encrypt RAILS_ENV=production
4. Проверяем, работает ли редмайн с помощью тестового веб-сервер webrick:
Из той же папки /usr/local/share/redmine запускаем:
[code] # ruby script/rails server webrick -e production[/code]
После этого появятся сообщения вроде этих:
=> Booting WEBrick
=> Rails 3.2.17 application starting in production on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2014-06-26 18:59:41] INFO WEBrick 1.3.1
[2014-06-26 18:59:41] INFO ruby 1.9.3 (2012-04-20) [x86_64-linux] [2014-06-26 18:59:41] INFO WEBrick::HTTPServer#start: pid=27676 port=3000
Это будет означать что сервер запустился на вашем IP-адресе на 3000-м порту.
Пробуем открыть в браузере:
http://domain.com:3000 или http://123.123.123.123:3000 где domain.com — это имя вашего домена, а «123.123.123.123» — это ваш IP адрес. Работать должно и так и эдак — должна открыться синяя страничка редмайна практически без ничего.
После этого в консоли с сервером нажимаем Ctrl+C и больше никогда так не делаем, так как webrick — это сервер исключительно для тестирования, он не выдержит никакой нагрузки, и вполне вероятно имеет уязвимости, которые для тестового сервера не важны, а вот на боевом могут причинить вам ущерб.
5. Настраиваем сервер Apache
5.1 Создаём файл виртуального хоста:
# nano /etc/apache2/sites-available/redmine.mihanentalpo.me
Имя файла лучше сделать соответствующим вашему домену, а он у вас врядли называется как у меня 🙂
В файле помещаем довольно простые настройки:
<VirtualHost *:80>
ServerName redmine.mihanentalpo.me
DocumentRoot /usr/local/share/redmine/public
<Directory /usr/local/share/redmine/public>
AllowOverride all
Options -MultiViews
</Directory>
</VirtualHost>
Соответственно, директива ServerName должна указывать на ваш домен третьего уровня, который вы назначили на Redmine
5.2 «Включаем» сайт:
Для того чтобы указанный выше конфигурационный файл заработал, необходимо чтобы он лежал в папке /etc/apache2/sites-enabled/. Добьемся этого при помощи символической ссылки:
# ln -s /etc/apache2/sites-available/redmine.mihanentalpo.me /etc/apache2/sites-enabled/redmine.mihanentalpo.me и перезапустим апач: # /etc/init.d/apache2 restart |
Проверяем сайт:
Открываем http://redmine.mihanentalpo.me и ….. видим содержимое папки /usr/share/redmine/public, а вовсе не редмайн 🙁 продолжаем битву:
1) Нужно переименовать файл:
# mv public/dispatch.fcgi.example public/dispatch.fcgi |
2) Нужно включить модуль Passenger, который отвечает за выполнение Ruby on rails, на котором построен redmine:
(Кстати, похоже что в некоторых случаях модуль уже включен и этого действия не требуется)
# ln -s /etc/apache2/mods-available/passenger.load /etc/apache2/mods-enabled/passenger.load # ln -s /etc/apache2/mods-available/passenger.conf /etc/apache2/mods-enabled/passenger.conf |
Аналогично включению сайта включаем модуль, и перезапускаем апач:
# /etc/init.d/apache2 restart |
Вот теперь всё должно работать. Адрес http://redmine.mihanentalpo.me отлично показывает редмайн! Ура!
Поясню, что это такое сейчас было: Passenger это сервер для Ruby on rails, созданный компанией Phusion, и имеющий OpenSource и Enterprice версии. Passenger так называется, вероятно потому что он как «пассажир» подсаживается «в поезд» другого веб-сервера и едет на нём. Есть модули passenger-а для Apache и Nginx, и эти модули позволяют Apache и Nginx работать с веб-приложениями написанными на Ruby on rails. Для работы собственно нужно, чтобы в папке сервера лежал файл dispatch.fcgi начинающийся с #!/bin/ruby
6. «Готовим» Redmine
Для того, чтобы начать работать с редмайном, осталось всего ничего. Последние настройки.
6.0 Дадим доступ к папкам tmp и files, иначе редмайн откажется редактировать пользователей, загружать файлы (и много чего еще):
# chmod -R 0777 /usr/local/share/redmine/tmp # chmod -R 0777 /usr/local/share/redmine/files |
6.1 Сменим пароль админа
У администратора по умолчанию логин admin и пароль admin. Нужно сменить пароль раньше чем ваш сервер обнаружит какой-нибудь сетевой искатель приключений, знающий о стандартном пароле redmine.
Нажимаем «Вход», логинимся под admin/admin, после чего переходим по ссылке «Администрирование», а оттуда в пользователей, где и можно сменить пароль админа, и все остальные его настройки:
- Рекомендую задать правильный почтовый адрес — пригодится для уведомлений
- В блоке «Уведомления по email» поставить галку «Не извещать об изменениях, которые я сделал сам», чтобы не доставать самого себя
- Также желательно выбрать правильный часовой пояс, на случай, если сервер находится не в одном часовом поясе с вами.
6.2 Настроим почту для отправки уведомлений
В моём случае почта находится на Яндекс-почте для доменов, параметры её таковы:
почта: redmine@mihanentalpo.me
логин: redmine@mihanentalpo.me
пароль: большой и сложный 🙂
сервер: smtp.yandex.ru
порт: 25
Итак, для настройки почты используется файл config/configuration.yml, который, опять же, копируем из файла-примера:
cp config/configuration.yml.example config/configuration.yml nano config/configuration.yml |
В файле много разных примеров настройки почты, какой из них нам подходит я уже не вспомню, но главное, что в случае Яндекс-почты, должно получиться что-то вроде: (отступы важны!)
[code] default:email_delivery:
delivery_method: :smtp
smtp_settings:
address: "smtp.yandex.ru"
port: 25
authentication: :login
user_name: "redmine@mihanentalpo.me"
password: "SuperPassword"
[/code]
6.3 Теперь выполним настройки приложения Redmine (В разделе «администрирование» ссылка «Настройки» на правой вкладке)
На какие настройки стоит обратить внимание:
Вкладка «Общее»
- Имя компьютера — его редмайн будет использовать при генерации ссылок в письмах. Надо написать доменное имя, на котором редмайн работает. В моём случае это redmine.mihanentalpo.me
Вкладка «Отображение»
- Тема — это внешний вид редмайна, сюда мы еще вернёмся
- Язык по умолчанию — русский, если, конечно, вы не ставите редмайн для нерусских пользователей.
Вкладка «Аутентификация»
- Необходима аутентификация — если вы настраиваете редмайн для каких-то частных проектов (а не для публичного OpenSource проекта) то эта опция поможет сделать так, чтобы любого неавторизованного пользователя «встречала» форма авторизации, и дальше не пускала.
- Автоматический вход — позволяет задать время которое будут храниться Куки. От этого зависит, с одной стороны, безопасность, с другой — комфорт работы. Если поставить время больше — реже надо будет вводить логин/пароль, однако увеличивается риск потерять аккаунт в случае, если у вас утащат куки.
Вкладка «Проекты»
- Главный плюс — позволяет задать для всех проектов функционал по умолчанию.
- Также можно выбрать трекеры по умолчанию для новых проектов (это «ошибка», «улучшение», «поддержка»)
Вкладка «Уведомления по email»
Её содержимое появляется только если заданы настройки отправки почты, которые были описаны ранее. Если их не задать — данная вкладка будет пуста.
- Исходящий email-адрес задаём таким же каким задавали его в конфигурации (в моём случае redmine@mihanentalpo.me)
- Следует выбрать «Способ уведомления по умолчанию»
- Также, стоит отметить галками те события, о которых нужно уведомлять
- В блоке «Подстрочные примечания письма» можно написать русское пояснение, с указанием правильной ссылки, в моём случае это выглядит так:
[code]
Вы получили это письмо, поскольку данное уведомление разрешено
в настройках вашего аккаунта Redmine.
Чтобы сменить эти настройки вы можете перейти
по адресу: http://redmine.mihanentalpo.me/my/account
[/code]При это часть ссылки «/my/account» ведет на страницу аккаунта текущего пользователя.
Вкладка «Хранилище» позволяет подключить git-репозиторий (или другой репозиторий исходного кода), который может позволить «красиво» просматривать дерево коммитов, а также закрывать задачи путём дописывания в названиях коммитов определенных ключевых слов. Однако эта настройка выходит за рамки данной статьи, просто потому что мне в моей задаче не требуется привязка репозитория. Может быть в другой раз.
6.4 Установим пару полезных плагинов
Для более удобного использования Redmine я пользуюсь двумя плагинами, без которых жить довольно печально.
1) Плагин, автоматически выставляющий 100% завершенность задачи когда ей выставляется статус «Готово». В противном случае, проценты придется каждый раз выставлять вручную, иначе суммарный процент выполненных задач не будет подсчитываться правильно.
2) Плагин, автоматически сохраняющий редактируемые задачи в виде черновика. Это помогает в том случае, если вы долго писали текст задачи, и случайно нажали комбинацию кнопок переносящих вас на страницу назад, или на одну из ваших закладок. В этом случае, открыв страницу редактор вновь, вы увидите спасительную надпись «Черновик сохранён. Восстановить?»
Приступим:
1) Плагин автоматических ста процентов:
Находится по адресу http://www.redmine.org/plugins/redmine_auto_percent, а его репозиторий на Гитхабе: https://github.com/escline/redmine-auto-percent
Перейдём в папку с плагинами:
# cd /usr/local/share/redmine/plugins |
Склонируем репозиторий плагина:
# git clone https://github.com/escline/redmine-auto-percent.git |
Запускаем миграции необходимые для установки плагина:
# rake redmine:plugins:migrate RAILS_ENV=production |
2) Плагин черновика:
Находится он здесь: http://www.redmine.org/boards/3/topics/13930, а его репозиторий здесь: https://github.com/jbbarth/redmine_drafts
Мы и так находимся в папке с плагинами, но а вдруг нет?
# cd /usr/local/share/redmine/plugins |
Клонируем репозиторий:
# git clone https://github.com/jbbarth/redmine_drafts.git |
Запускаем миграции плагина:
# rake redmine:plugins:migrate RAILS_ENV=production |
3) После установки модулей перезапускаем веб-сервер:
/etc/init.d/apache2 restart |
Теперь можно зайти в админ панель → администрирование → модули, и убедиться в том, что плагины установлены.
6.5 Установим «красивую» тему
Стандартный внешний вид Redmine довольно минималистичен, и для тех кто хочет сделать его чуть «красивее», есть множество тем, и лежат они здесь: http://www.redmine.org/projects/redmine/wiki/Theme_List
Я установлю тему «basecamp-with-icon» чтобы показать как это вообще делается, ну а еще и потому что считаю её одной из неплохих, наряду с темой «A1» и еще некоторыми.
Данная тема доступна в репозитории https://github.com/lqez/redmine-theme-basecamp-with-icon
Переходим в папку с темами
# cd /usr/local/share/redmine/public/themes |
Клонируем репозиторий:
# git clone https://github.com/lqez/redmine-theme-basecamp-with-icon.git |
Перезапускаем вебсервер, после чего можно зайти в админ панель → администрирование → настройки, выбрать там вкладку «Отображение» и из выпадающего списка «Тема» выбрать свежеустановленную тему, после чего, сохранив изменения, получить желаемую тему на своём экране.
Ура. Давно искал такую статью. Спасибо, попробую сделать все то же самое и напишу что получилось.
Самый лучший мануал по установке
Да, Миш, спасибо за статью.
Поставил редмайн с первого раза с помощью неё!
Спасибо. Отличный мануал. Пригодился.
И Ваши пояснения добавляют понимания.
Смогли бы объяснить зачем в некоторых сборках народ юзает unicorn, redis и прочие прочие.. Это заморочки если хочется nginx использовать наверное?
Unicorn — это сервер для приложений Ruby-on-rails, можно использовать и его, тогда либо он будет «торчать» прямо в интернет 80-м портом (тогда других веб-серверов на этой машине на том же порту запустить не удастся), либо будет работать через реверс-прокси apache или nginx, тогда можно будет «завернуть» его в какую-то отдельную виртуальную папку сервера или на отдельное доменное имя, при этом отображая на других доменных именах что-то другое, например сайты на PHP. В случае данной статьи сервером для приложений Ruby-on-rails является Passenger скомпилированный в виде модуля для Apache.
Redis — это быстрое хранилище типа «ключ-значение» (еще называют NoSQL), для самого редмайна оно не нужно, может понадобится для каких-то сторонних плагинов редмайна, типа вот этого https://github.com/pvdvreede/support_helpdesk. Если где-то в мануле его ставили — там и нужно искать причину того, зачем это было сделано в конкретном случае.
Статья, действительно, хорошо написано, обстоятельно, с объяснениями — классный стиль. Лучше многих англоязычных мануалов. Вопросов вообще не возникло. Спасибо большое.
Спасибо автору, статья просто супер. Я перепробовал кучу мануалов в сети и постоянно выходили ошибки которых небыло в мануале. Здесь всё расписано и самое главное работает.
Большое спасибо за статью!
Наконец-то удалось практически без проблем установить RedMine.
Добавьте пожалуйста в п.3.3 необходимость установки libmagickwand-dev перед тем, как запустить gem install bundler
Сначала хотел написать что добавлю, а потом пригляделся и увидел, что у меня это уже написано.
В пункте 2.3 как раз устанавливаются пакеты, среди которых есть libmagickwand-dev
Да, действительно есть. Странно, почему у меня с первого раза не установилось.
Спасибо за отличное руководство!
Рад что кому-то пригодилось 🙂
вылетает ошибка на rmagick, прекращена поддержка версий ruby начиная с 1.8.3
А как конкретно выглядит ошибка? Имея полный текст ошибки — по нему можно погуглить. Имя русский его перевод — погуглить можно но безрезультатно 🙂
Пришлось установить на другом хосте еще один RedMine, на этот раз актуальная версия 2.6.5. Не установилось без:
apt-get install imagemagick
apt-get install build-essential
Спасибо за информацию, допишу в статью эти пакеты, лишним не будет.
Вообще, в Debian Wheezy эти пакеты (во всяком случае, imagemagick точно) сами подтягиваются при установке предыдущих
Так уж получилось, что на сервере новая Jessie и пакеты не подтянулись 🙁
А вот в январе ставил на Wheezy по Вашей же статье — все замечательно установилось.
Благодарю! Долго искал подробное руководство. Это лучшая статься по теме!
Всё получилось, кроме настройки почты. Выдает ошибку модуля для отправки почты^
http://joxi.ru/Dr8dEOIkoR0zr6
как лечить, подскажите
Какой-то очень лютый косяк. Похоже что конфигурация почты сломана.
Нужно посмотреть содержимое файла configuration.yml.
Пароли в файле перед выкладкой замазать!
Все сделал но вываливает ошибку http://redmine.itamit.com/
————————
Error message:
cannot load such file — bundler
Exception class:
LoadError
Application root:
/usr/local/share/redmine
————————-
Вызываю
# gem list -d bundler
————————————-
bundler (1.11.2, 1.7.6)
Authors: Andrц╘ Arko, Terence Lee, Carl Lerche, Yehuda Katz
Homepage: http://bundler.io
License: MIT
Installed at (1.11.2): /usr/local/rvm/gems/ruby-2.1.5
(1.7.6): /usr/local/rvm/gems/ruby-2.1.5@global
The best way to manage your application’s dependencies
bundler-unload (1.0.2)
Author: Michal Papis
Homepage: https://github.com/mpapis/bundler-unload
License: Apache 2.0
Installed at: /usr/local/rvm/gems/ruby-2.1.5@global
Allow unloading bundler after Bundler.load
rubygems-bundler (1.4.4)
Authors: Josh Hull, Michal Papis
Homepage: http://mpapis.github.com/rubygems-bundler
License: Apache-2.0
Installed at: /usr/local/rvm/gems/ruby-2.1.5@global
Stop using bundle exec
————————————-
Все на месте, скажите плиз что не так и куда копать?
1. В каком именно месте появляется данная ошибка?
2. Даже без ответа на вопрос 1, похоже что у тебя установлено 2 версии бандлера, 1.11.2 и 1.7.6, из-за чего возникает проблема. Варианты:
2.1. Попробовать просто установить бандлер заново:
[bash]
su
gem install bundler
[/bash]
2.2. Попробовать снести все бандлеры, что есть в системе, затем снести всё руби что есть в системе вместе со всеми env’ами (окружениями), после чего поставить его заново.
2.3. Ответить на вопрос — где вылезает эта ошибка, и станет понятнее что ещё можно сделать.