HeadOnFire
@HeadOnFire
PHP, Laravel & WordPress Evangelist

Gems устанавливаются в /root, пути не те. Где напутал и как исправить?

Камрады, нужна помощь, мозг взорвался. На уже работающем VPS под Ubuntu 12.04 с Apache, PHP и MySQL решил установить на отдельный субдомен Redmine. Для него, естественно, надо ставить Ruby и Rails, а потом Passenger. С Ruby не дружу еще, делал по нескольким инструкциям, сравнивая и проверяя:

https://grandslam90.wordpress.com/2012/05/22/howto...
www.redmine.org/projects/redmine/wiki/RusRedmineInstall

Все вроде шло хорошо, полностью совпадало с инструкцией, и Redmine даже запустился под WEBrick. Начал устанавливать Passenger, и тут пошли неувязки. Для начала, "passenger-install-apache2-module" не запускался - command not found. С помощью гугла понял, что либо надо прописать путь в PATH, либо запускать с полным путем. Полез искать где он лежит, и удивился, что все гемы у меня лежат в "/root/.rbenv/versions/2.0.0-p451/lib/ruby/gems/2.0.0/gems/", хотя по логике должны быть в " /var/lib/gems/2.0.0/gems". Запустил Passenger вручную, дальше установщик ругнулся и попросил сделать "chmod o+x /root", что меня уже совсем напрягло.

Лог, с самого начала:
cd

git clone git://github.com/sstephenson/rbenv.git .rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
exec $SHELL

git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
echo 'export PATH="$HOME/.rbenv/plugins/ruby-build/bin:$PATH"' >> ~/.bashrc
exec $SHELL

apt-get install gcc

apt-get install libssl-dev

rbenv install 2.0.0-p451
rbenv global 2.0.0-p451
rbenv rehash
ruby -v

echo "gem: --no-ri --no-rdoc" > ~/.gemrc

gem install bundler

apt-get install python-software-proprties
add-apt-repository ppa:chris-lea/node.js
apt-get update
apt-get install nodejs

gem install rails --version 4.0.0 --no-ri --no-rdoc
rbenv rehash
rails -v

Вроде все по тюториалам (см. ссылки выше), за исключением доустановки по ходу недостающих packsages. Но видимо где-то есть ошибка. Знающие люди, подскажите плз. Голову уже сломал. Боюсь, придется восстанавливаться со снепшота и делать все заново. Главное знать где не повторить глюк.

P.S.: Дальнейшие действия (установка и настройка Redmine) вряд ли могли быть причиной, но на всякий случай тоже дам лог:
cd /usr/share
wget http://www.redmine.org/releases/redmine-2.5.0.tar.gz
tar xvfz redmine-2.5.0.tar.gz
rm redmine-2.5.0.tar.gz
mv redmine-2.5.0 redmine
chown -R root:root /usr/share/redmine
chown www-data /usr/share/redmine/config/environment.rb
ln -s /usr/share/redmine/public /var/www/office.paspar2.com/httpdocs

mysql -u root -p
CREATE DATABASE redmine character SET utf8;
CREATE user 'redmine'@'localhost' IDENTIFIED BY '**********';
GRANT ALL privileges ON redmine.* TO 'redmine'@'localhost';
exit

cp redmine/config/database.yml.example redmine/config/database.yml
nano redmine/config/database.yml

  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  password: **********
  encoding: utf8

apt-get install libmysqlclient-dev
apt-get install libmagickcore-dev libmagickwand-dev

gem install bundler

cd redmine
bundle install --without development test postgresql sqlite

cd /usr/share/redmine
rake generate_secret_token
RAILS_ENV=production rake db:migrate 
RAILS_ENV=production rake redmine:load_default_data

mkdir tmp tmp/pdf public/plugin_assets
chown -R www-data:www-data files log tmp public/plugin_assets
chmod -R 755 files log tmp public/plugin_assets

ruby script/rails server webrick -e production

После этого по адресу redmine.domain.com:3000 все красиво открылось. Переходим к установке Passenger:
gem install passenger

apt-get install libcurl4-openssl-dev libssl-dev apache2-prefork-dev libapr1-dev libaprutil1-dev

passenger-install-apache2-module

И вот тут появилась ошибка. На последней команде получил ошибку: Command not found. Поискал где он установлен, и обнаружил тут:
~/.rbenv/versions/2.0.0-p451/lib/ruby/gems/2.0.0/gems/passenger-4.0.38/bin/passenger-install-apache2-module

Запустил его вот так, и он попросил дать папке /root o+x, что меня уже окончательно остановило. Из интереса, сделал что он просил. После завершения компиляции модуля Apache он мне выдал следующий текст для конфига:
LoadModule passenger_module /root/.rbenv/versions/2.0.0-p451/lib/ruby/gems/2.0.0/gems/passenger-4.0.38/buildout/apache2/mod_passenger.so
   <IfModule mod_passenger.c>
     PassengerRoot /root/.rbenv/versions/2.0.0-p451/lib/ruby/gems/2.0.0/gems/passenger-4.0.38
     PassengerDefaultRuby /root/.rbenv/versions/2.0.0-p451/bin/ruby
   </IfModule>

Ну и тут уже вообще без вариантов, запускать апачевский модуль из /root - wtf?!
Где я напортачил? Восстановиться из снепшота и проделать все заново не проблема, главное понять, где не повторить ошибку. Заранее благодарю!
  • Вопрос задан
  • 3658 просмотров
Решения вопроса 1
У вас всё устанавливается в /root, так как вы делаете установку от имени пользователя root. Лучше устанавливать всё через sudo из-под аккаунта обычного пользователя.
Тогда всё ставится в "хомяк" этого пользователя.
Что касается passenger, то при его установке есть возможность задать каталог размещения (если не хотите менять права на каталог с модулем).

Посмотрите официальную документацию по установке Passenger - www.modrails.com/documentation/Users%20guide%20Apa...

Рекомендую ставить ruby через RVM - https://rvm.io/rvm/install
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы