Ruby на Mac OSX через порты Mac

Я новичок как в Ruby, так и в Mac OSX, хотя у меня достаточно опыта работы с командами Unix. Я только что установил Ruby 1.9 с помощью команды MacPorts (установка порта ruby19). Затем мне нужно было выполнить поиск в корневом каталоге, чтобы выяснить, куда он попал, что оказалось: /opt/local/var/macports/software/ruby19/1.9.1-p376_0/opt/local/bin/ruby1. 9.

Текущая версия Ruby (1.8.6) работает через / usr / bin / ruby, который представляет собой символическую ссылку на /System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby, где Current является символическим ссылка на каталог 1.8.

Я хотел бы сделать Ruby 1.9 моим по умолчанию (вместе со связанными инструментами, такими как irb), и, хотя мне это удается, я хотел бы знать, есть ли традиционный способ. Следует ли мне скопировать или связать путь MacPorts с /System/Library/Frameworks/Ruby.framework/Versions/1.9, а затем указать Current на 1.9? (Я бы также переименовал или скопировал исполняемые файлы: ruby1.9 в ruby, irb1.9 в irb и т. Д.) Или я должен просто удалить ссылку / usr / bin / ruby ​​(и / usr / bin / irb, и т. д.) и создавать новые, указывающие на версию MacPorts?


person Greg Charles    schedule 12.08.2010    source источник
comment
Вам не следует не удалять (или, откровенно говоря, трогать) системный Ruby (или Perl, или Python). Оставьте все как есть. Система ожидает, что он будет там, и у вас нет возможности заранее узнать, сколько (или какие) вещи зависят от этого. В этом случае rvm - отличный инструмент для управления несколькими интерпретаторами Ruby, но всегда лучший ответ, чем удаление значения по умолчанию.   -  person Telemachus    schedule 12.08.2010
comment
Все предложения rvm - хороший пример Straw Men. В частности, вам нужен системный рубин, рубин для любого места. Вы хотите, чтобы / opt / local / bin / ruby ​​был ruby1.9. Теперь unix предоставляет для этого переменную $ PATH, / usr / bin / $ {ruby binaries} не будет просматриваться при условии, что вы правильно настроили свой путь, как кажется. RVM - отличный инструмент, если вы не хотите использовать ruby ​​каждый день по умолчанию.   -  person chiggsy    schedule 20.05.2011
comment
порт установить ruby19 + nosuffix, кстати;)   -  person chiggsy    schedule 20.05.2011
comment
Я хочу иметь возможность выполнять скрипты ruby ​​1.9 из make файлов, которые выполняет XCode. RVM помещает огромное количество вещей в переменные среды. Кто-нибудь знает способ установить 1.9 и направить XCode для его запуска из make-файлов ??   -  person peterk    schedule 10.10.2011


Ответы (7)


Мой совет:

$ port uninstall ruby1.9

Затем выполните следующее: https://rvm.io/rvm/install/

Потом:

$ rvm install 1.9.2
$ rvm --default 1.9.2

Вы можете даже rvm install macruby поиграть с Какао.

person Amadan    schedule 12.08.2010
comment
+1 здесь, а также проверить homebrew для управления другими пакетами github.com/mxcl/homebrew - person Jed Schneider; 12.08.2010
comment
Спасибо! Rvm кажется чем-то вроде обязательств, но, вероятно, стоит усилий. - person Greg Charles; 12.08.2010
comment
У rvm есть множество опций, но для начала вы можете обойтись только этими тремя: rvm install, чтобы получить новый рубин, rvm use, чтобы переключить версии, и время от времени rvm update, чтобы получить новый материал. Все остальное вы можете изучить на досуге, когда вам это нужно (например, многоверсионное тестирование). - person Amadan; 12.08.2010
comment
Хотя это решение работает хорошо, оно не отвечает на вопрос TS - как ... с помощью инструмента XXX? не используйте XXX - person ursa; 05.11.2017

Вы можете легко использовать команду выбора порта в MacPorts 2.1.3

$sudo port select --set ruby ruby19
person Jason Zhu    schedule 10.04.2013
comment
Очевидно, это правильный способ MacPorts сделать это сейчас, а не +nosuffix - person beporter; 12.04.2013

Вместо этого установите вариант nosuffix:

sudo port install ruby19 +nosuffix

Ваша новая версия Ruby теперь должна иметь приоритет над предустановленной.

person You    schedule 12.08.2010
comment
Спасибо, это очень помогло. Я не видел такой возможности. - person Greg Charles; 12.08.2010

В последней версии macports (2.1.3 или выше) вы можете использовать команду port select.

port select --list ruby
sudo port select --set ruby ruby19

Для более ранних версий macports вы можете сделать символическую ссылку на пронумерованную версию ruby. Это способ, которым macports обычно обрабатывает переключение между разными версиями пакетов.

cd /opt/local/bin
sudo ln -s ruby1.9 ruby
person amicitas    schedule 24.01.2013

Я настоятельно рекомендую RVM. Это требует некоторого чтения, но после его установки вы можете установить ruby ​​с помощью rvm install 1.9 (или jruby, ree, 1.8 и т. Д.) И переключаться между ними с помощью rvm 1.9. Каждая версия Ruby также будет иметь свой собственный, полностью изолированный набор rubygems.

person Matt Briggs    schedule 12.08.2010

Бинарный файл ruby1.9 должен быть установлен в /opt/local/bin; если это не так, возможно, вы не активировали порт.

Самый простой способ сделать Ruby 1.9 корневым каталогом по умолчанию - создать псевдоним от ruby до ruby1.9. Если вы используете Bash, вы можете сделать это, поместив это в свой файл конфигурации Bash:

alias ruby='/opt/local/bin/ruby1.9'
person mipadi    schedule 12.08.2010
comment
Спасибо что подметил это. У меня есть /opt/local/bin/ruby1.9. Я, вероятно, включу его с помощью символической ссылки, а не псевдонима, но в любом случае будет работать. - person Greg Charles; 12.08.2010
comment
Наверное, этого недостаточно. Вам следует использовать link, gem, rdoc и ряд файлов, которые поставляются с ruby1.9. Лучшее решение для поддержания чистоты вашей системы - использование RVM. Системный или даже macports ruby ​​можно использовать для компиляции, то есть vim с поддержкой ruby. - person patm; 30.11.2012

Удалите ruby ​​версии 1.8:
sudo port uninstall ruby ​​
Установите ruby ​​версии 1.9:
sudo port install ruby19
Снова откройте терминал

person user1763487    schedule 16.06.2013
comment
Не уверен, что нужно повторно открывать терминал. - person Valeriy Van; 11.10.2013