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 sudo
al 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 rails
lugar de hacerlogem install rails
.sudo
es 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. Usandosudo
escrituras 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
sudo
al 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
sudo
es peor que simplementegem install
porque 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
, usarlosudo
causará todo tipo de rarezas porque cada versión de Ruby que instalesRVM
tiene 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 install
y 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.rb
adición--user-install
allí. No puedo encontrar una mejor solución, porque parecerake install
que no acepta parámetros adicionales.Mejor aún,
--user-install
ingrese 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_profile
y 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/RUBYVERSION
en 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 desudo
acceso. Los scripts ejecutables instalados por gem o bundler se pueden poner en su camino agregandoa tu
$PATH
.gem
sí 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