Pregunta

Si no instala gemas con sudo en un mac, por defecto se colocarán en un directorio como

.gem/ruby/1.8/gems/

Si realiza la instalación con sudo , entiendo que normalmente se encuentran en los directorios del sistema, de este modo:

 /usr/local/lib/ruby/gems/1.8/gems/

¿Hay alguna buena razón para que instales gemas con sudo en lugar de simplemente permitir que otros las compartan contigo? *

Tengo la impresión de que deberías instalar gemas porque si como usuario bob instala las gemas dentro del directorio de bob , entonces un usuario como www -datos (utilizados por Passenger / Apache en Ubuntu Linux al servir archivos), para usarlos, ¿es esta la única razón por la que los usarías de esta manera?

¿O es la mejor práctica ahora usar algo como Ruby Version Manager ahora?

Realmente apreciaría escuchar a algunos desarrolladores de Ruby más experimentados sobre dónde almacenas el tuyo y por qué.

¿Fue útil?

Solución

Ejecutar gem install con sudo significa que está ejecutando la instalación como un usuario administrador y como tal lo instalará para todo el sistema. Si ejecuta como un usuario normal, simplemente colocará las gemas en su directorio de inicio.

Para su máquina o servidor de desarrollo, /usr/local/lib/ruby/gems/1.8/gems/ es casi seguramente el lugar adecuado para colocar gemas. Si está en algún tipo de alojamiento compartido o está jugando con las versiones de desarrollo de algunas gemas, manténgalos en su directorio de inicio para no saturar el sistema para otros usuarios.

No he oído hablar de Ruby Version Manager antes. Lo comprobaré.

Otros consejos

AFAIK, Ruby Version Manager (RVM) está más orientado a simplificar el trabajo con múltiples versiones de Ruby (1.8.6, 1.8.7, 1.9.1, MRI, JRuby, etc.) en la misma máquina. Dado que muchas gemas incluyen elementos específicos de la versión y / o compilados, es posible que se necesiten diferentes versiones de gemas para usar dentro de esas versiones de Ruby. RVM te permite cambiar el entorno de Ruby, pero dentro de ese entorno, [sudo] gem install será igual que siempre.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top