La actualización de Ruby no funciona con dos métodos

La actualización de Ruby no funciona con dos métodos

Intenté instalar Ruby versión 1.9.3 con esto en mi 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.

Mi version:

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

Salida del archivo de registro:

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.

Y luego intenté instalar usando MacPorts, pero tampoco funcionó nuevamente. ¿Algunas ideas?

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?

Aquí está mi camino ahora mismo:

/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

Ni de 'cuál -a hacer' ni localizar -b '\hacer'. El primero tiene el comando what not found, y el segundo para localizar: opción ilegal --b

Respuesta1

Problema 1:make

El primer problema es que Ruby necesita ser compilado y eso generalmente se hace a través demakeque leerá la configuración de a Makefiley luego llamará al compilador. En OSX makese instala con Xcodelo que instala sus herramientas en /Developer/usr/binlugar de /usr/bindonde uno esperaría. Este directorio no está en el valor predeterminado, $PATHpor lo que el shell no encuentra los archivos ejecutables que contiene.

Puede solucionar este problema para su usuario agregando esta línea a su ~/.bash_profile(asegúrese de agregarla antes de export $PATHla línea):

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

Sin embargo, ningún comando que se ejecute como root (por ejemplo, con) seguirá sin poder acceder a esto sudo. Le recomiendo que agregue este directorio a la ruta predeterminada. Abra /etc/profile, busque la línea que define la ruta allí y agréguele el directorio. Estoy en un sistema Linux pero debería verse así:

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

Simplemente agregue el directorio al final para que se vea así:

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

Si no desea cambiar el valor predeterminado, puede vincular makea un directorio que esté en el valor predeterminado $PATH:

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

Tendrás que hacer esto para todo lo que hay, /Developer/usr/binpor lo que realmente te recomiendo que cambies el valor predeterminado.

Problema 2: encontrar la nueva versión

En este punto deberías poder instalar Ruby con

$ sudo port install ruby19

Eso sale correctamente pero su versión de Ruby no parece estar actualizada:

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

Esto es porque,por defecto, portinstala sus archivos /opt/locale instalará su ejecutable Ruby como /opt/local/bin/ruby1.9. Otro directorio más que no está en su $PATH. Por lo tanto, puede repetir el proceso anterior y agregarlo /opt/local/bina su directorio $PATHo puede vincular el ruby1.9ejecutable a un directorio que se encuentre en su ruta. Si agrega /opt/local/bina su $PATH, podrá ejecutar v1.8 con rubyy v1.9 con ruby1.9. Si desea que todos sus scripts existentes cambien a la versión 1.9, le recomiendo que seleccione /usr/bin/rubyla nueva versión.

La versión anterior /usr/bines en realidad un enlace 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

Esto significa que puedes eliminarlo de forma segura y reemplazarlo con un enlace a la nueva versión:

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

Si alguna vez desea revertir y ejecutar rubyv1.8, simplemente ejecute el comando inverso:

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

Si todo ha ido bien, su valor predeterminado rubyahora es la versión 1.9:

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

Respuesta2

Eche un vistazo a esta esencia. Muestra cómo instalarlo para Mountain Lion.

Destaca cómo utilizar MacPorts o Homebrew. Una vez que haya solucionado esto, se mostrará cómo instalarlo usando rvm.

información relacionada