Установил fxruby поверх macports, теперь rubygems не работает

Я установил fxruby, используя

$sudo port install rb-fxruby

Как предложено в книге.

Это работает, моя программа hello world работала правильно.

Теперь, однако, другой код, который я написал, сломан, всякий раз, когда я пытаюсь использовать любой код, основанный на драгоценном камне, он не работает. Когда я делаю $ruby -e "require 'rubygems'" в своем коде, это дает

"LoadError: no such file to load — rubygems" 

Когда я установил свой RUBYOPT="rubygems" в свой .bash_profile

$ruby -e "puts 'hello world'"
ruby: no such file to load -- ubygems (LoadError)

(здесь написано «ubygems» без буквы «r» спереди, не знаю почему)

http://newsgroups.derkeiler.com/Archive/Comp/comp.lang.ruby/2008-08/msg00351.html предлагает мне проверить местоположение моего драгоценного камня относительно моего местоположения ruby, я получаю:

$cat `which gem` | head -n 1
#!/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby

$ls -l `which ruby`
-rwxr-xr-x  2 root  admin  12680 Feb  7 03:40 /opt/local/bin/ruby

Я предполагаю, что это означает, что драгоценные камни перепутаны, но не знаю, как это исправить. Любые идеи? Отстойно не иметь драгоценных камней.

---ОБНОВИТЬ---

Забыл указать версии:

$which gem
/usr/bin/gem

$gem --version
1.3.5

$ruby --version
ruby 1.8.7 (2009-04-08 patchlevel 160) [i686-darwin9]

person Joshua Cheek    schedule 07.02.2010    source источник


Ответы (2)


Если вы установили rb-fxruby через macport, он также установит macport ruby.

$ port info rb-fxruby
...
Library Dependencies: ruby, fox, fxscintilla
...

Но, как видите, rb-rubygems (версия rubygems для macport) не указана как зависимость, поэтому вам придется установить ее вручную.

$ sudo port install rb-rubygems

должен сделать это за вас.

person thestoneage    schedule 04.03.2010

Похоже, вы пытаетесь использовать поставляемый Apple gem, который работает с поставляемым Apple ruby. Вы установили версию для MacPorts?

sudo port install rb-rubygems
/opt/local/bin/gem
person Ned Deily    schedule 07.02.2010
comment
Rubygems у меня был установлен, когда я купил компьютер. У меня нет файла gem в /opt/local/bin. Должен ли я попробовать установить rubygems через macports? Я как бы чувствую, что это изменило переменную пути или что-то в этом роде, и если бы я мог выяснить, какой из них / где, то я мог бы это исправить, но я понятия не имею, где искать. - person Joshua Cheek; 08.02.2010
comment
Я не эксперт по ruby, но подозреваю, что по умолчанию установленные драгоценные камни связаны с конкретным экземпляром ruby, поэтому при установке ruby ​​для MacPorts вам также потребуется его пакет rubygems, и тогда вам, вероятно, придется переустанавливать драгоценные камни, которые вы нужно его использовать. В общем, пакеты MacPorts изо всех сил стараются отделить все от версий, поставляемых Apple, включенных в OS X. - person Ned Deily; 08.02.2010