Ejecutar ' sudo gem list --local' y ' gem list --local' me dan resultados diferentes. Mi ruta de gemas está configurada en mi carpeta de inicio y solo contiene las gemas de ' gem list --local'.
Probablemente no sea bueno tener gemas instaladas en diferentes directorios en mi computadora, entonces, ¿debería tener la ruta de gemas configurada de manera diferente, y debería usarla siempre sudoal instalar algo?
my ~/.profile
export PATH=/opt/local/bin:/opt/local/sbin:$PATH
export PATH="/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:$PATH"
~ / .bash_profile está vacío.
ruby-on-rails
ruby
macos
rubygems
raphael_turtle
fuente
fuente

sudo gem install railslugar de hacerlogem install rails.sudoes un arma cargada apuntando hacia tu pie. Usarlo sin comprender lo que hace y cómo puede afectar su sistema es como apretar el gatillo con los ojos cerrados. Puede hacer un agujero en su pie, puede que no, pero de cualquier manera no quiere correr el riesgo a menos que sepa cómo deshacer el daño. Usandosudoescrituras en el sistema propiedad de Ruby, que, en Mac OS, fue instalado por Apple para sus propios usos. Podemos aprovecharlo, pero cambiar lo incorrecto puede romper su código. Es por eso que instalamos desde la fuente o usamos algo más para instalar donde podemos ajustarlo de manera segura.Respuestas:
Al contrario de todas las otras publicaciones que sugiero NO usar
sudoal instalar gemas.En cambio, le recomiendo que instale RVM y comience una vida feliz con casas de gemas portátiles y diferentes versiones de Ruby, todas viviendo bajo un mismo techo.
Para los no iniciados, de la documentación :
La razón por la cual instalar gemas
sudoes peor que simplementegem installporque instala las gemas para TODOS LOS USUARIOS comoroot. Esto podría estar bien si eres la única persona que usa la máquina, pero si no lo eres, puede causar rarezas.Si decide que quiere volar todas sus gemas y comenzar de nuevo, es mucho más fácil y seguro hacerlo como usuario no root.
Si decides que quieres usar
RVM, usarlosudocausará todo tipo de rarezas porque cada versión de Ruby que instalesRVMtiene su propio GEM_HOME.Además, es bueno si puede hacer que su entorno de desarrollo sea lo más cercano posible a su entorno de producción, y en la producción lo más probable es que instale gemas como usuario no root.
fuente
También puede instalar gemas en su entorno local (sin
sudo) conLo recomiendo para que no te metas con la configuración a nivel de sistema, incluso si se trata de una computadora de un solo usuario.
Puede verificar a dónde van las gemas mirando gempaths con
gem environment. En mi caso es "~ / .gem / ruby / 1.8".Si necesita agregar algunos binarios de instalaciones locales a su ruta, puede agregar algo a su bashrc como:
(de http://guides.rubygems.org/faqs/#user-install )
fuente
rake instally para arreglar el sudo isse, tuve que parchear manualmente la/Library/Ruby/Gems/2.0.0/gems/bundler-1.7.3/lib/bundler/gem_helper.rbadición--user-installallí. No puedo encontrar una mejor solución, porque parecerake installque no acepta parámetros adicionales.Mejor aún,
--user-installingrese su archivo ~ / .gemrc para que no tenga que escribirlo cada vezfuente
En el caso que tú
agregue lo siguiente a su
.bash_profile:¡Abre una nueva pestaña en la Terminal OR
source ~/.bash_profiley listo!fuente
Relacionado (para usuarios de paquetes), si desea una alternativa más ligera a RVM que coloque todo en un directorio conocido específico del usuario, le recomiendo usar:
si quieres instalar gemas en el mismo lugar que
los instalará
.gem/ruby/RUBYVERSIONen tu homedir. (Vea el otro comentario sobre esta pregunta sobre--user-install).Esto hará que las gemas sean visibles
gem list, desinstalablesgem uninstall, etc. sin necesidad desudoacceso. Los scripts ejecutables instalados por gem o bundler se pueden poner en su camino agregandoa tu
$PATH.gemsí mismo le informa sobre esto si no está configurado cuando lo hacegem install --user-install.fuente
instalará su gema globalmente , es decir, estará disponible para todos los contextos de usuario.
fuente
Puede instalar gemas en una carpeta específica (ejemplo proveedor /) en su aplicación Rails usando:
fuente