Проблемы с установкой Macports Ruby19

Я изучаю Rails и довольно новичок в Macports.

Я получаю следующую ошибку при запуске rails server для моего проекта:

/...config/initializers/session_store.rb:3: syntax error, unexpected ':', expecting $end

Я считаю, что эта синтаксическая ошибка вызвана запуском подтвержденной версии Rails ниже 1.9.0, потому что ruby -v дает мне ruby 1.8.7.

Проблема в том, что я уверен, что установил рубин 1.9.3

Я запускал port clean ruby19 и различные комбинации для установки ruby ​​1.9.3.

port install ruby19

port install ruby19 -nosuffix

Оба дают мне следующую ошибку:

Error: org.macports.activate for port ruby19 returned: Image error: /opt/local/bin/erb is being used by the active ruby port. Please deactivate this port first, or use 'port -f activate ruby19' to force the activation.

Если я запускаю port -f activate ruby19, я получаю эту ошибку:

--->  The following versions of ruby19 are currently installed:
--->      ruby19 @1.9.3-p194_3+doc (active)
--->      ruby19 @1.9.3-p194_3+doc+mactk
--->      ruby19 @1.9.3-p194_3+doc+nosuffix
Error: port activate failed: Registry error: Please specify the full version as recorded in the port registry.

Куда мне отсюда идти?!

В основном мне нужно самое быстрое и простое решение для запуска этого проекта - мне не нужно несколько версий ruby ​​​​на моей машине.

Да ладно, я знаю, что не могу быть первым с этой проблемой! Действительно ли RVM единственный способ сделать это?

Спасибо заранее!


person benedict_w    schedule 16.09.2012    source источник


Ответы (2)


Используйте rvm, который намного проще, работает локально и обновляется чаще. Вы также можете использовать rbenv или любой другой установщик ruby, который там есть. Сэкономьте время и воспользуйтесь этими установщиками.

person three    schedule 16.09.2012
comment
Спасибо - посмотрю. Что такое RVM, это альтернатива macports? - person benedict_w; 16.09.2012
comment
rvm — это локальный установщик ruby, который позволяет запускать несколько ruby ​​параллельно, то есть вы выбираете, какой из них хотите запустить прямо сейчас, в терминале, и позволяете изменить это с помощью простой команды. - person three; 16.09.2012
comment
Ясно - в идеале я хотел бы настроить и запустить его с помощью macports, так как в данный момент у меня есть все остальное на моей машине. Мне пока не нужны несколько версий Ruby. Если я действительно не смогу заставить работать версию macports, я буду исследовать RVM дальше. Спасибо! - person benedict_w; 16.09.2012
comment
конечно, это нормально. Я думал, вы выбрали Macports только как средство для установки Ruby. Это хорошо для того, что он делает! - person three; 17.09.2012

Оказывается, у меня уже была установка ruby ​​​​(1.8.7) на macports.

Я удалил все выпуски ruby19 для macports sudo port uninstall ...

деактивировал активную версию sudo port -f deactivate ruby

и установил версию 1.9.3 без суффикса

sudo port install ruby19 +nosuffix

Я получил эту ошибку:

Image error: /opt/local/bin/gem is being used by the active rb-rubygems port. Please deactivate this port first, or use 'port -f activate ruby19' to force the activation.

так побежал sudo port -f activate ruby19

теперь, когда я запускаю rails server, я получаю:

/opt/local/lib/ruby1.9/1.9.1/rubygems/dependency.rb:247:in `to_specs': Could not find railties (>= 0) amongst [bigdecimal-1.1.0, io-console-0.3, json-1.5.4, minitest-2.5.1, rake-0.9.2.2, rdoc-3.9.4] (Gem::LoadError)
from /opt/local/lib/ruby1.9/1.9.1/rubygems/dependency.rb:256:in `to_spec'
from /opt/local/lib/ruby1.9/1.9.1/rubygems.rb:1231:in `gem'
from /opt/local/bin/rails:22:in `<main>'

Затем я обновил свой пакет драгоценных камней и рельсы:

sudo gem update --system
sudo gem uninstall rubygems-update
sudo gem install rails
sudo bundle install

результат:

Your bundle is complete! Use 'bundle show [gemname]' to see where a bundled gem is installed.
Post-install message from rdoc:
Depending on your version of ruby, you may need to install ruby rdoc/ri data:

<= 1.8.6 : unsupported
  = 1.8.7 : gem install rdoc-data; rdoc-data --install
  = 1.9.1 : gem install rdoc-data; rdoc-data --install
 >= 1.9.2 : nothing to do! Yay!

Полезное обсуждение здесь путей macports и ruby: Как MacPorts устанавливает пакеты? Как я могу активировать установку Ruby через MacPorts?

Многие люди рекомендуют RVM https://rvm.io/, но мне пока нужно только 1.9.2. .

person benedict_w    schedule 21.09.2012