2009-08-26 2 views
4

После попытки установить ruby19 на моей машине (КПП, Mac OSX 10.5.7) с помощью следующей командную строкуКак MacPorts устанавливает пакеты? Как я могу активировать установку Ruby через MacPorts?

sudo port install ruby19 

версия рубин не изменилась

ruby -v => ruby 1.8.6 (2008-08-11 patchlevel 287) [universal-darwin9.0] 

Я предполагаю, что у меня есть две версии его установлены на моем mac, но как я могу использовать последнюю версию сейчас?

ответ

5

Чтобы использовать определенную рубиновую версию, если у вас установлена ​​две версии, вы можете указать абсолютный путь к тому, который вы хотите. Например./Ваш/путь/к/рубин Или вы можете изменить PATH настройки в файле .profile

вы можете ввести

which ruby 

, чтобы увидеть путь к рубинового исполняемый файл, который используется в данный момент.

использованием

echo $PATH 

Вы можете видеть текущее значение PATH. Вы должны добавить путь к вашему новому рубиновому двоичному файлу в PATH, чтобы он был найден до другого.

Как уже упоминалось в ayaz, местоположение вашего файла macports по умолчанию находится в/opt/local. Если вы добавите/opt/local/bin перед своим путем, все должно быть хорошо. (Обязательно запустите новое окно терминала после изменения - они не будут собраны в текущем сеансе, если вы явно не «снова загрузите» файл .profile)

Одно примечание: после добавления/выбора/локального/bin на ваш путь, то оболочка будет всегда предпочитает двоичные файлы там, где они найдены позже, это может быть проблемой, если вы зависите от конкретных версий в/bin,/sbin или/usr/sbin - в зависимости от вашей ситуации это означает что вы не должны этого делать (если ваш компьютер обрабатывает конфиденциальные данные и/или в банке или что-то в этом роде) или просто нужно помнить, что это может быть проблемой (если ваш компьютер является обычной машиной разработки).

См. http://www.tech-recipes.com/rx/2621/os_x_change_path_environment_variable/, если вам нужно еще несколько советов о том, как установить PATH на osx.

+0

thx для информации, и я думаю, что macports уже сделали это для меня, потому что, когда я посмотрел его имя, использование ruby ​​1.9 так же просто, как набрать «ruby1.9 ...» в терминал экспорт PATH =/opt/local/bin:/opt/local/sbin: $ PATH –

1

Я склонен думать, что macports обычно хранит все свои материалы в каталоге /opt/local. Я использую Leopard, и у меня есть это внутри этого каталога. Вы можете посмотреть там, особенно внутри /opt/local/bin, чтобы найти ruby бинарный файл, который вы ищете.

2

Простое уточнение о MacPorts. Аяз прав, что по умолчанию MacPorts будет устанавливать вещи в /opt/local. (Это позволяет легко глобально деинсталляцию позже, если вы хотите, и он держит пакеты MacPorts из пути пакетов OS X).

При установке MacPorts, он будет нормально редактировать ваши $PATH (и ваш $MANPATH) для вы обновляете свой .profile вашего пользователя (создавая его, если он еще не существует).

В качестве меры предосторожности установщик создаст резервную копию оригинала .профиль, если вы хотите отменить изменения (или если вы полностью удалите MacPorts позже). Вот пример из случайной машины на работе.

 
admin ~ $ ls .profile* 
.profile .profile.macports-saved_2009-08-03_at_14:55:56 

Если вы посмотрите в .profile вы должны увидеть что-то вроде этого:

 
## 
# Your previous /Users/admin/.profile file was backed up as /Users/admin/.profile.macports-saved_2009-08-03_at_14:55:56 
## 

# MacPorts Installer addition on 2009-08-03_at_14:55:56: adding an appropriate PATH variable for use with MacPorts. 
export PATH=/opt/local/bin:/opt/local/sbin:$PATH 
# Finished adapting your PATH environment variable for use with MacPorts. 

# MacPorts Installer addition on 2009-08-03_at_14:55:56: adding an appropriate MANPATH variable for use with MacPorts. 
export MANPATH=/opt/local/share/man:$MANPATH 
# Finished adapting your MANPATH environment variable for use with MacPorts. 

Если ваш $ PATH не был обновлен, вы должны настроить его, поскольку в противном случае у вас возникнут проблемы с использованием инструмента port и программного обеспечения, которое вы устанавливаете через MacPorts.

9

По умолчанию порт Ruby 1.9 в MacPorts устанавливает двоичный файл Ruby в /opt/local/bin/ruby1.9. Он добавляет 1.9, чтобы не торопиться с библиотеками Ruby 1.8.7 и драгоценными камнями, поскольку не все драгоценные камни совместимы с 1.9. Таким образом, вы должны запустить Ruby 1.9 с ruby1.9irb1.9 и т.д.)

Если вы не хотите, чтобы это сделать, у вас есть два варианта:

  1. Псевдоним ruby к ruby1.9 в вашей оболочке файл конфигурации.
  2. Установите порт Ruby 1.9 с вариантом +nosuffix. Однако следует предупредить, что если вы установили Ruby 1.8 через MacPorts, установка Ruby 1.9 через MacPorts без суффикса 1.9 может привести к конфликтам (с драгоценными камнями и т. Д.).
+0

Альтернативой добавлению псевдонима является создание каталога «bin» в вашей домашней папке, 'ln -s /opt/local/bin/ruby1.9 ruby' и gem' ln -s /opt/local/bin/gem1.9 gem', тогда укажите это первое в своем пути 'export PATH = ~/bin: $ PATH'. Преимущество этого заключается в том, что он позволит MacVim забрать правильную версию Ruby (она не распознает псевдонимы, а только $ PATH). – atomicules

+1

Метод использования варианта '+ nosuffix' был заменен новым синтаксисом MacPorts (по версии v.2.1.3?):' Port select --set ruby ​​ruby19'. Это, предположительно, относится к любому пакету, имеющему несколько «версий», хотя, похоже, разработчику пакета необходимо реализовать поддержку для этого отдельно. Команда 'select 'устанавливает, какая из этих версий будет доступна без суффикса ('/opt/local/bin/ruby' вместо '/ opt/local/bin/ruby19'.) – beporter