¿Cómo evitar que bundler genere binstubs?
zsh (3)
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 install de nuevo. Para deshabilitarlos, puede ejecutar bundle install --no-binstubs
, o ejecutar rm -rf .bundle/config
. De cualquier manera, eso deshabilitará la generación de binstub.
Estoy usando oh-my-zsh con plugins=(git bundler)
en mi .zshrc
. Por lo tanto, no necesito bundler para generar binstubs. Pero Bundler lo hace de todos modos.
➜ 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é se generaron los binstubs? No pasé una opción pidiéndolos. Al menos, no creo que sea:
➜ 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##*/}" "$@"
Tampoco tengo nada en mi ~/.bundle/config
.
¡Por favor, ayúdame a poner el kabosh en los binstubs indeseados!
La opción --no-binstubs
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 binstubs.
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
Si aún está recibiendo binstubs después de cambiar su archivo $HOME/users/.bundle/config
, es muy probable que tenga otra configuración en algún lugar. Para averiguar dónde ejecutar el comando de 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 estás buscando es la información del bin
. Esta información le proporciona rutas a los archivos que tienen la información de configuración en ellos. lo que puedes hacer para solucionar esto es ir al archivo de configuración y eliminar la línea que dice BUNDLE_BIN: bin
that o cambiar bin bin al falso BUNDLE_BIN: ''false''
vi /Users/username/apps/ruby/rails_application/.bundle/config
Si ejecuta bundle config
nuevamente, no debería ver bin config o debería ver que está configurado en falso. En este ejemplo, puse el mío en falso para obtener 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 a tener en cuenta, sin embargo, cada aplicación ruby que responde al paquete podría tener su propio .bundle / config personalizado.
Si actualiza todos los .bundle/config
no debería tener nuevos archivos creados en el directorio bin cuando ruby bundle
o bundle install
Averiguado algo más, a veces piensa 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.