
Я попытался установить Ruby версии 1.9.3 на свой Mac 10.6.8 с помощью этого:
$ \curl -L https://get.rvm.io | bash -s stable --ruby
Oskar-Niburskis-MacBook-Pro:~ oskarniburski$ rvm install ruby-1.9.3-p362
Searching for binary rubies, this might take some time.
No binary rubies available for: osx/10.6/i386/ruby-1.9.3-p362.
Continuing with compilation. Please read 'rvm help mount' to get more information on binary rubies.
Checking requirements for osx.
Installing requirements for osx.
Updating system.............................................
Installing required packages: autoconf, automake, libtool, pkgconfig, libiconv, libyaml, libffi, readline, libksba, openssl, curl-ca-bundle, sqlite3, zlib, gdbm, ncurses...
Error running 'requirements_osx_port_libs_install autoconf automake libtool pkgconfig libiconv libyaml libffi readline libksba openssl curl-ca-bundle sqlite3 zlib gdbm ncurses',
please read /Users/oskarniburski/.rvm/log/1380238189_ruby-1.9.3-p362/package_install_autoconf_automake_libtool_pkgconfig_libiconv_libyaml_libffi_readline_libksba_openssl_curl-ca-bundle_sqlite3_zlib_gdbm_ncurses.log
Requirements installation failed with status: 1.
Моя версия:
Oskar-Niburskis-MacBook-Pro:~ oskarniburski$ ruby --version
ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin10.0]
Вывод файла журнала:
Oskar-Niburskis-MacBook-Pro:~ oskarniburski$ cat /Users/oskarniburski/.rvm/log/1380238189_ruby-1.9.3-p362/package_install_autoconf_automake_libtool_pkgconfig_libiconv_libyaml_libffi_readline_libksba_openssl_curl-ca-bundle_sqlite3_zlib_gdbm_ncurses.log
[2013-09-26 19:30:17] requirements_osx_port_libs_install
requirements_osx_port_libs_install ()
{
__rvm_try_sudo port install "$@" || {
typeset ret=$?;
rvm_warn "There were package installation errors, make sure to read the log.";
return $ret
}
}
current path: /Users/oskarniburski
command(16): requirements_osx_port_libs_install autoconf automake libtool pkgconfig libiconv libyaml libffi readline libksba openssl curl-ca-bundle sqlite3 zlib gdbm ncurses
Warning: Xcode does not appear to be installed; most ports will likely fail to build.
---> Computing dependencies for autoconfError: Unable to execute port: can't read "build.cmd": Failed to locate 'make' in path: '/opt/local/bin:/opt/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin' or at its MacPorts configuration time location, did you move it?
There were package installation errors, make sure to read the log.
А потом попробовал установить с помощью MacPorts, но и это не сработало. Есть идеи?
Oskar-Niburskis-MacBook-Pro:~ oskarniburski$ sudo port install ruby19
Warning: Xcode does not appear to be installed; most ports will likely fail to build.
---> Computing dependencies for ruby19Error: Unable to execute port: can't read "build.cmd": Failed to locate 'make' in path: '/opt/local/bin:/opt/local/sbin:/bin:/sbin:/usr/bin:/usr/sbin' or at its MacPorts configuration time location, did you move it?
Вот мой путь сейчас:
/opt/local/bin:/opt/local/sbin:/usr/local/git/bin:/usr/X11/bin:/Пользователи/oskarniburski/.rvm/bin:/usr/X11R6/bin:/Библиотека/Фреймворки/Python.framework/Версии/3.3/bin:/Библиотека/Фреймворки/Python.framework/Версии/2.7/bin:/Библиотека/Фреймворки/Python.framework/Версии/Текущий/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/usr/X11/bin:/Пользователи/oskarniburski/.rvm/bin
Ни 'which -a make', ни locate -b '\make'. У первой есть which command not found, а у второй locate:illegal option --b
решение1
Проблема 1:make
Первая проблема заключается в том, что Ruby необходимо скомпилировать, а это обычно делается черезmake
который будет считывать настройки из a Makefile
, а затем вызывать компилятор. На OSX make
устанавливается с Xcode
which устанавливает свои инструменты в /Developer/usr/bin
вместо того, /usr/bin
куда можно было бы ожидать. Этот каталог не входит в каталог по умолчанию, $PATH
поэтому любые исполняемые файлы в нем не будут найдены оболочкой.
Вы можете исправить это для своего пользователя, добавив эту строку в свой файл ~/.bash_profile
(обязательно добавьте ее перед export $PATH
строкой):
PATH="/Developer/usr/bin:$PATH"
Однако это все равно не будет доступно для любых команд, запущенных от имени root ( sudo
например, с помощью ). Я рекомендую вам добавить этот каталог в путь по умолчанию. Откройте /etc/profile
, найдите строку, которая определяет путь, и добавьте в нее каталог. Я работаю в системе Linux, но это должно выглядеть примерно так:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Просто добавьте каталог в конец, чтобы это выглядело так:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/Developer/usr/bin"
Если вы не хотите менять настройки по умолчанию, вы можете создать ссылку make
на каталог, который находится в настройках по умолчанию $PATH
:
sudo ln -s /Developer/usr/bin/make /usr/bin
Вам придется сделать это для всех, /Developer/usr/bin
поэтому я настоятельно рекомендую вам изменить настройки по умолчанию.
Проблема 2: поиск новой версии
На этом этапе вы сможете установить Ruby с помощью
$ sudo port install ruby19
Это завершается корректно, но ваша версия Ruby, похоже, не обновлена:
$ ruby --version
ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin10.0]
Это потому что,по умолчанию, port
устанавливает свои файлы в /opt/local
и установит ваш исполняемый файл ruby как /opt/local/bin/ruby1.9
. Еще один каталог, которого нет в вашем $PATH
. Таким образом, вы можете либо повторить процесс выше и добавить /opt/local/bin
в ваш $PATH
, либо можете связать ruby1.9
исполняемый файл с каталогом, который находится в вашем пути. Если вы добавите /opt/local/bin
в ваш $PATH
, вы сможете запустить v1.8 с ruby
и v1.9 с ruby1.9
. Если вы хотите, чтобы все ваши существующие скрипты перешли на v1.9, я рекомендую вам указать /usr/bin/ruby
на новую версию.
Старая версия на /usr/bin
самом деле является символической ссылкой:
$ ls -l /usr/bin/ruby
rwxr-xr-x 1 root wheel 76 25 Jun 2010 /usr/bin/ruby -> ../../System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby
Это значит, что вы можете безопасно удалить его и заменить ссылкой на новую версию:
$ sudo rm /usr/bin/ruby; sudo ln -s /opt/local/bin/ruby1.9 /usr/bin/ruby
Если вы когда-нибудь захотите вернуться к ruby
версии 1.8, просто выполните обратную команду:
$ sudo rm /usr/bin/ruby; sudo ln -s /System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby /usr/bin/ruby
Если все прошло хорошо, ruby
то теперь у вас версия по умолчанию v1.9:
$ ruby --version
ruby 1.9.3p448 (2013-06-27 revision 41675) [x86_64-darwin10]
решение2
Взгляните на этот gist. Показывает, как установить его для Mountain Lion.
Выделяет, как использовать MacPorts или Homebrew. Как только вы это поймете, он покажет, как установить с помощью rvm
.