Как MacPorts устанавливает пакеты? Как активировать установку Ruby через MacPorts? - PullRequest
4 голосов
/ 26 августа 2009

После попытки установить ruby19 на моем компьютере (PPC, Mac OSX 10.5.7) с помощью следующей командной строки

sudo port install ruby19

версия ruby ​​не изменилась

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

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

Ответы [ 4 ]

9 голосов
/ 12 ноября 2009

По умолчанию порт 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 может вызвать конфликты (с гемами и т.
5 голосов
/ 26 августа 2009

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

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

which ruby

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

с помощью

echo $PATH

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

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

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

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

2 голосов
/ 27 августа 2009

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

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

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

</p> <pre> admin ~ $ ls .profile* .profile .profile.macports-saved_2009-08-03_at_14:55:56 </pre> <p>

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

</p> <pre> ## # 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. </pre> <p>

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

1 голос
/ 26 августа 2009

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

...