Atualização Ruby não funciona usando dois métodos

Atualização Ruby não funciona usando dois métodos

Tentei instalar o Ruby versão 1.9.3 com isso no meu 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.

Minha versão:

Oskar-Niburskis-MacBook-Pro:~ oskarniburski$ ruby --version
ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin10.0]

Saída do arquivo de log:

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.

E então tentei instalar usando MacPorts, mas também não funcionou novamente. Alguma ideia?

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?

Aqui está o meu caminho agora:

/opt/local/bin:/opt/local/sbin:/usr/local/git/bin:/usr/X11/bin:/Users/oskarniburski/.rvm/bin:/usr/X11R6/bin:/Library/ Frameworks/Python.framework/Versions/3.3/bin:/Library/Frameworks/Python.framework/Versions/2.7/bin:/Library/Frameworks/Python.framework/Versions/Current/bin:/usr/bin:/bin: /usr/sbin:/sbin:/usr/local/bin:/usr/local/git/bin:/usr/X11/bin:/Users/oskarniburski/.rvm/bin

Nem de 'qual -a make' nem de localizar -b '\make'. O primeiro tem qual comando não encontrado, e para o último, a opção localizar:illegal --b

Responder1

Problema 1:make

O primeiro problema é que Ruby precisa ser compilado e isso geralmente é feito atravésmakeque lerá as configurações de a Makefilee chamará o compilador. No OSX makeé instalado com Xcodeo qual instala suas ferramentas em /Developer/usr/binvez de /usr/binonde seria de esperar. Este diretório não está no padrão, $PATHportanto nenhum executável nele contido é encontrado pelo shell.

Você pode corrigir isso para o seu usuário adicionando esta linha ao seu ~/.bash_profile(certifique-se de adicioná-la antes export $PATHda linha):

PATH="/Developer/usr/bin:$PATH" 

No entanto, isso ainda não estará acessível a nenhum comando executado como root ( sudopor exemplo). Eu recomendo que você adicione este diretório ao caminho padrão. Abra /etc/profile, encontre a linha que define o caminho e adicione o diretório a ela. Estou em um sistema Linux, mas deve ser algo assim:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

Basta adicionar o diretório ao final para que fique assim:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/Developer/usr/bin"

Se não quiser alterar o padrão, você pode vincular makea um diretório que esteja no padrão $PATH:

 sudo ln -s /Developer/usr/bin/make /usr/bin

Você terá que fazer isso para tudo que estiver incluído, /Developer/usr/binentão eu realmente recomendo que você altere o padrão.

Problema 2: encontrar a nova versão

Neste ponto você deve ser capaz de instalar o Ruby com

$ sudo port install ruby19

Isso sai corretamente, mas sua versão Ruby não parece estar atualizada:

$ ruby --version
ruby 1.8.7 (2012-02-08 patchlevel 358) [universal-darwin10.0]

Isto é porque,por padrão, portinstala seus arquivos /opt/locale instalará seu executável Ruby como /opt/local/bin/ruby1.9. Mais um diretório que não está no seu arquivo $PATH. Portanto, você pode repetir o processo acima e adicionar /opt/local/binao seu $PATHou pode vincular o ruby1.9executável a um diretório que esteja no seu caminho. Se você adicionar /opt/local/binao seu $PATH, poderá executar v1.8 com rubye v1.9 com ruby1.9. Se você deseja que todos os seus scripts existentes mudem para /usr/bin/rubya versão 1.9, recomendo que você opte pela nova versão.

A versão antiga em /usr/biné na verdade um link simbólico:

$ 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

Isso significa que você pode excluí-lo com segurança e substituí-lo por um link para a nova versão:

$ sudo rm /usr/bin/ruby; sudo ln -s  /opt/local/bin/ruby1.9  /usr/bin/ruby

Se você quiser reverter e executar rubya versão 1.8, basta executar o comando inverso:

$ sudo rm /usr/bin/ruby; sudo ln -s  /System/Library/Frameworks/Ruby.framework/Versions/Current/usr/bin/ruby  /usr/bin/ruby

Se tudo correu bem, seu padrão rubyagora é v1.9:

$ ruby --version
ruby 1.9.3p448 (2013-06-27 revision 41675) [x86_64-darwin10]

Responder2

Dê uma olhada nesta essência. Mostra como instalá-lo para Mountain Lion.

Destaca como usar MacPorts ou Homebrew. Depois de resolver isso, ele mostra como instalar usando o rvm.

informação relacionada