ruby on rails - rails - ¿Por qué Bundle Install está instalando gemas en proveedor/paquete?
ruby gemfile (6)
Cada vez que hago un bundle install
todas las gemas se instalan en
app_dir/vendor/bundle
ruta de acceso y consume una gran cantidad de espacio en disco. También traté de instalar gemas donde deberían instalarse, es decir, gemas mientras se desarrollaba con esto:
bundle install --no-deployement
pero esto no funciona para mí y la instalación de gemas en vendor/bundle
. ¿Cómo puedo hacer que se instale globalmente para todas las aplicaciones o en la ubicación de las gemas ruby? También intenté eliminar .bundle/config
pero nada cambió.
Estoy usando:
rvm version: 1.23.14
ruby version: 2.0.0-p247
rails 3.2.13
Aquí está mi ~/.bash_profile
:
export PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
eval "$(rbenv init -)"
alias pg=''pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log''
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function
Mi ~/.bashrc
:
PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scripting
Alguna otra información que pueda necesitar:
aman@Amandeeps-MacBook-Pro ~/Projects/qe (develop)*$ which bundle
/Users/aman/.rvm/gems/ruby-2.0.0-p247@global/bin/bundle
aman@Amandeeps-MacBook-Pro ~/Projects/qe (develop)*$ rbenv which bundle
/Users/aman/.rbenv/versions/2.0.0-p247/bin/bundle
amandeep@Amandeeps-MacBook-Pro ~/Projects/qe (develop)*$ rbenv which ruby
/Users/aman/.rbenv/versions/2.0.0-p247/bin/ruby
aman@Amandeeps-MacBook-Pro ~/Projects/qe (develop)*$ rbenv gemset active
rbenv: NO such command `gemset''
aman@Amandeeps-MacBook-Pro ~/Projects/qe (develop)*$ which rails
/Users/aman/.rvm/gems/ruby-2.0.0-p247@global/bin/rails
Intenté esto también pero no ayudó:
bundle install --system
y eliminando el directorio .bundle
.
Ayúdame a instalar gemas en gemas, no en vendor/bundle
o en un lugar predeterminado.
Use
bundle env
para ver las rutas y la configuración del paqueteDespués de establecer la ruta del paquete a
~/.rvm/gems/ruby-2.0.0-p247
esta manera:bundle install --path ~/.rvm/gems/ruby-2.0.0-p247
que es global y también puede usar su propia ruta personalizada.
Publica esta
bundle install
y nunca volverá a necesitar lapath
y siempre instalará todas tus gemas en esedirectory(~/.rvm/gems/ruby-2.0.0-p247 in my case
) para esa aplicación que noapp_folder/vendor/bundle
en laapp_folder/vendor/bundle
En la carpeta del proyecto, tendrá el directorio .bundle
que contiene la configuración de bundler
. intenta borrar esa carpeta. debería restablecer la ruta de instalación de sus gemas a la configuración de todo el sistema.
En el caso de que solo desee editar la ruta de instalación, al abrir .bundle/config
con su editor favorito, debe mostrarle la ruta a vendor/bundle
. Al eliminar esa línea, se restaurará a los valores predeterminados sin eliminar otras configuraciones que pueda tener.
Además, otro escenario menos frecuente es la configuración de todo el sistema está en mal estado. De acuerdo con @NaoiseGolden:
Tuve que eliminar
.bundle
de mi carpeta de inicio (rm -rf ~ / .bundle). Puede verificar su configuración ejecutandobundle env
En primer lugar, de acuerdo con su información, parece que ha instalado tanto rvm como rbenv. Esa es una muy mala idea . Tienes que eliminar uno de ellos (rbenv + bundler funciona como un amuleto para mí, no intenté rvm).
Con respecto a su pregunta, compruebe .bundle/config
en su proyecto, ya que toda la configuración para el paquete de ese proyecto se encuentra allí (si todavía se elimina, puede crear una nueva). Puede querer agregar esta línea (o cambiarla, si ya está allí): BUNDLE_DISABLE_SHARED_GEMS: ''0''
para compartir gemas, van donde se establece su BUNDLE_PATH:
( BUNDLE_PATH: vendor
en mi caso).
Para el archivo de configuración global, mire en ~/.bundle/config
También esta página man podría ser de utilidad: configuración de paquete
Intenta ejecutar bundle env
. Esto le indicará dónde se configura la ruta.
Intenta instalar usando
bundle install --system
Creo que inicialmente la instalación del paquete se ejecutó con --path
flag y bundler ahora recuerda esa confguración.
De la página man de bundler
Algunas opciones se recuerdan entre las llamadas a la instalación del conjunto y el tiempo de ejecución de Bundler.
Las llamadas posteriores a la instalación del paquete instalarán las gemas en el directorio pasado originalmente a --path . El tiempo de ejecución de Bundler buscará gemas en esa ubicación. Puede revertir esta opción ejecutando bundle install --system .
EDITAR : como se menciona en los comentarios a continuación, y también de lo contrario, esto instala el sistema de gemas de ancho. En caso de que esté utilizando rvm, etc. para administrar su entorno para diferentes aplicaciones, verifique la respuesta de @IuriG mencionada anteriormente.
Para instalar Gem en todo el sistema evitando el proveedor / paquete de ruta, simplemente ejecute el siguiente comando en el directorio del proyecto
bundle install --system