Подтвердить что ты не робот

Установка пути Rails на Ubuntu с RVM

Я linux noob, работающий под Ubuntu 10.04 и пытающийся установить рельсы. Сначала я установил ruby, а затем RVM, а затем загрузил и установил rubygems, а затем установил рельсы.

Кажется, что только Rails реагируют, если у меня есть "sudo" перед командой. Если я пишу 'rails new test' в терминале, я получаю следующее:

/usr/local/lib/site_ruby/1.8/rubygems.rb:779:in `report_activate_error': Could not find RubyGem rails (>= 0) (Gem::LoadError)
    from /usr/local/lib/site_ruby/1.8/rubygems.rb:214:in `activate'
    from /usr/local/lib/site_ruby/1.8/rubygems.rb:1082:in `gem'
    from /usr/bin/rails:18

Если я иду на терминал и пишу 'rails -v', я получаю то же самое:

   /usr/local/lib/site_ruby/1.8/rubygems.rb:779:in `report_activate_error': Could not find RubyGem rails (>= 0) (Gem::LoadError)
        from /usr/local/lib/site_ruby/1.8/rubygems.rb:214:in `activate'
        from /usr/local/lib/site_ruby/1.8/rubygems.rb:1082:in `gem'
        from /usr/bin/rails:18

И если я пойду на терминал и напишу 'sudo rails -v', я получаю следующее: Rails 3.0.0.rc

'gem environment' дает мне следующее:

RUBYGEMS VERSION: 1.3.7
  - RUBY VERSION: 1.9.2 (2010-07-11 patchlevel -1) [i686-linux]
  - INSTALLATION DIRECTORY: /home/josh/.rvm/gems/[email protected]
  - RUBY EXECUTABLE: /home/josh/.rvm/rubies/ruby-1.9.2-rc2/bin/ruby
  - EXECUTABLE DIRECTORY: /home/josh/.rvm/gems/[email protected]/bin

Мое подозрение в том, что мой путь настроен неправильно, но я не уверен, как его исправить. Предложения?

4b9b3361

Ответ 1

Я также столкнулся с этой проблемой на чистой установке Ubuntu 10.10... даже после установки предварительных требований rvm и ruby, задокументированных "примечаниями $rvm".

Похоже, что проблема с установкой gem "rvm" не может найти установку системы zlib. Комментарий Daniel выше - замечательный комментарий - жаль, что он не указан в качестве ответа.

Итак, решение для меня состояло в том, чтобы следовать инструкциям, указанным Даниэлем: https://rvm.beginrescueend.com/packages/zlib/.

$ rvm pkg install zlib
$ rvm remove 1.9.2
$ rvm install 1.9.2

Первая команда устанавливает zlib локально в вашу область rvm. Вторая команда удаляет ruby ​​1.9.2, а третья команда переустанавливает ruby ​​1.9.2 с rvm-local zlib.

После этого установите рубиновую версию и установите драгоценные камни:

$rvm использовать 1.9.2
$ gem установить "независимо"

Ответ 2

Я предполагаю, что вы установили свои драгоценные камни, используя sudo (например, sudo gem install rails). Когда вы используете sudo для установки, RVM игнорируется и используется рубиновый режим.

При использовании RVM вы действительно не хотите устанавливать с помощью sudo (обратите внимание, что есть команда rvmsudo, чтобы запустить настройку RVM через sudo, но вы действительно редко будете использовать это). Как вы можете видеть из своей среды, ваши драгоценные камни будут храниться в /home/josh/.rvm/gems/[email protected]/gems, где вам не нужны корневые разрешения для установки.

Итак, попробуйте:

gem install rails

как вы сами и посмотрите, все ли работает.

Ответ 3

Если вы получаете это предупреждение, "ERROR: Загрузка команды: update (LoadError) нет такого файла для загрузки - zlib"

В принципе, если библиотеки zlib не существует в момент компиляции ruby, вам просто нужно вернуться и установить библиотеку, а затем повторно скомпилировать ruby.

Итак, попробуйте выполнить следующие шаги

  • Удалить ruby ​​

    rvm удалить ruby-1.9.2

  • Установите необходимые библиотеки

    sudo apt-get install build-essential libssl-dev libreadline5 libreadline5-dev zlib1g zlib1g-dev

  • Переустановите ruby ​​

    rvm install 1.9.2

  • Вы, вероятно, захотите установить эту версию ruby ​​по умолчанию

    rvm use 1.9.2 --default

  • Чтобы быть в безопасности, закройте терминал, который вы сейчас открыли, и откройте новый. Вы должны быть добры, чтобы идти отсюда.

Ответ 4

Как сказал Роб Ди Марко, вы не можете использовать sudo gem install rails с RVM (см. Документация по RVM).

На самом деле я просто задал очень похожий вопрос. Я первоначально установил рельсы с sudo gem, и когда я попытался установить более старую версию рельсов с использованием RVM, я столкнулся с этой проблемой. Это был мой код:

rvm use 1.8.7
rvm gemset create rails3.0.1
rvm [email protected]
sudo gem install rails --version=3.0.1 #the *sudo* in this line is WRONG

Другой пользователь (zetetic) предложил удалить ваши "sudo gem rails" с помощью следующей команды:

sudo gem uninstall rails

И затем установите снова без sudo - gem install rails

После того, как я сделал все это, я повторил свой оригинальный код, и он сработал, но на этот раз без sudo:

rvm use 1.8.7
rvm gemset create rails3.0.1
rvm [email protected]
gem install rails --version=3.0.1

Приведенный выше код может быть применим только к вам, если вы пытаетесь использовать RVM, но для решения вашей проблемы попробуйте удалить ваши рельсы sudo и переустановить без sudo. Работал для меня. Удачи!

Ответ 5

Решение:

apt-get install build-essential libssl-dev libreadline5 libreadline5-dev zlib1g zlib1g-dev

Тогда:

rvm install ruby-1.9.2-p290
rvm default 1.9.2

Ответ 6

Нет, все мои драгоценные камни установлены без sudo.

Вот некоторые отладочные данные, которые могут помочь.

$PATH до rvm 1.9.2 --passenger

/home/kevin/.rvm/gems/ruby-1.9.2-p0/bin: /home/kevin/.rvm/gems/[email protected]/bin: /home/kevin/.rvm/rubies/ruby-1.9.2-p0/bin:/home/kevin/.rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/USR/бен:/SBIN:/USR/игры

$PATH после rvm 1.9.2 --passenger

/home/kevin/.rvm/gems/ruby-1.9.2-p0/bin: /bin:/home/kevin/.rvm/rubies/ruby-1.9.2-p0/bin:/home/kevin/.rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/SBIN:/USR/бен:/SBIN:/бен:/USR/игры

Это мой .bashrc файл: http://pastebin.com/H9U3azAk

Ответ 7

если вы устанавливаете через источник

ext/Setup and uncomment the zlib line

$ ./configure
$ make
$ sudo make install

$ ruby -v
=> ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-linux]

$ gem -v
=> 1.3.7

Ответ 9

  • сначала, установите необходимые библиотеки

    sudo apt-get install build-essential libssl-dev libreadline5 libreadline5-dev zlib1g zlib1g-dev

  • затем переустановите ruby ​​1.9.2

    rvm переустанавливает 1.9.2 && Использование rvm 1.9.2