2012-07-26 18 views
22

Estoy usando oh-my-zsh con plugins=(git bundler) en mi .zshrc. Entonces, no necesito bundler para generar binstubs. Pero bundler lo hace de todos modos.¿Cómo evitar que bundler genere binstubs?

 
➜ bundle 
Using rake (0.9.2.2) 
... 
Your bundle is complete! Use `bundle show [gemname]` to see where a bundled gem is installed. 
 
✗ ls bin 
erubis  haml   nokogiri  rails  rake2thor rdoc   resque-web sass   scss   thor   tt 
guard  html2haml rackup  rake   rdiscount resque  ri   sass-convert thin   tilt 

¿Por qué el binstubs consiguen generaron - No pasé una opción preguntar por ellos. Al menos, no creo que soy:

 
➜ which bundle 
/Users/david/.rbenv/shims/bundle 
➜ cat /Users/david/.rbenv/shims/bundle 
 
#!/usr/bin/env bash 
set -e 
export RBENV_ROOT="/Users/david/.rbenv" 
exec rbenv exec "${0##*/}" "[email protected]"

no tengo nada en mi ~/.bundle/config tampoco.

¡Ayúdenme a poner el kabosh en los contenedores de basura no deseados!

Respuesta

53

Bundler genera binstubs por aplicación. Si ejecutó bundle install --binstubs en algún momento en el pasado, Bundler lo recordará y generará binstubs cada vez que ejecute la instalación nuevamente. Para deshabilitarlos, puede ejecutar bundle install --no-binstubs o ejecutar rm -rf .bundle/config. De cualquier manera, eso desactivará la generación de binstub.

+10

Creo en lugar de borrar '.bundle/config' como un todo, editarlo y eliminar la línea 'BUNDLE_BIN' es suficiente. –

+8

La opción '--no-binstubs' no funcionó para mí. Tuve que editar manualmente '.bundle/config'. –

+2

Tuve que 'rm -rf .bundle/config'. Sin embargo, primero debes verificar los contenidos. Para mí, solo tenía la línea 'BUNDLE_BIN: bin', que parece ser la culpable. –

18

La opción --no-binstubs hace no elimina la opción recordada en el paquete 1.5.3!

En su lugar use bundle config --delete bin, o edite .bundle/config y elimine la línea BUNDLE_BIN del archivo, luego elimine los archivos no deseados del directorio local de los contenedores de basura.

Ejemplo:

ianh$ cat .bundle/config 
--- 
BUNDLE_CACHE_ALL: "true" 
BUNDLE_BIN: bin 

ianh$ bundle install --no-binstubs 
Using rake (10.1.1) 
... etc etc ... 
Using bundler (1.5.3) 
Updating files in vendor/cache 
Your bundle is complete! 
Use `bundle show [gemname]` to see where a bundled gem is installed. 

ianh$ cat .bundle/config 
--- 
BUNDLE_CACHE_ALL: "true" 
BUNDLE_BIN: bin 

# see ... it didn't remove the option. 

ianh$->(15) bundle config --delete bin 

ianh$ cat .bundle/config 
--- 
BUNDLE_CACHE_ALL: "true" 

ianh$ bundle -v 
Bundler version 1.5.3 
1

Si usted todavía está recibiendo binstubs después de cambiar su archivo $HOME/users/.bundle/config es más que probable que usted tiene otra configuración en algún lugar. Con el fin de averiguar dónde ejecutar el comando seguimiento

$ bundle config 
Settings are listed in order of priority. The top value will be used. 
gem.coc 
Set for the current user (/Users/username/.bundle/config): "true" 

gem.mit 
Set for the current user (/Users/username/.bundle/config): "true" 

gem.test 
Set for the current user (/Users/username/.bundle/config): "rspec" 

build.libv8 
Set for the current user (/Users/username/.bundle/config): "--without-system-v8" 

disable_multisource 
Set for the current user (/Users/username/.bundle/config): "true" 

bin 
Set for your local app (/Users/username/apps/ruby/rails_application/.bundle/config): "bin" 
Set for the current user (/Users/username/.bundle/config): "false" 

Lo que se busca es la información bin. Esta información le proporciona rutas a los archivos que tienen la información de configuración en ellos. lo que puede hacer con el fin de solucionar este problema es entrar en el archivo de configuración y borrar la línea que dice BUNDLE_BIN: bin que o el cambio bin paquete de falsa BUNDLE_BIN: 'false'

vi /Users/username/apps/ruby/rails_application/.bundle/config 

Si ejecuta bundle config nuevo no debe ver el bin configuración o del que debiera ver que está configurado en falso. En este ejemplo, establecí el mío en falso, así que obtengo este nuevo resultado.

bin 
Set for your local app (/Users/username/apps/ruby/gscs_ci/.bundle/config): "false" 
Set for the current user (/Users/username/.bundle/config): "false" 

Algo señalar, sin embargo cada aplicación rubí que responde al paquete podría tener su propio .bundle encargo/config

Si actualiza toda la .bundle/config que no debería haber creado nuevos archivos en el directorio bin cuando ruby bundle o bundle install

Averigua algo más, a veces cree que falso es un directorio, por lo que sería mejor simplemente eliminar la línea que BUNDLE_BIN podría ser más simple.

Cuestiones relacionadas