Как предотвратить создание Bundler binstubs?

Я использую О-мой-ЗШ С plugins=(git bundler) в своем .zshrc. Итак, мне не нужен bundler для создания 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

почему были сгенерированы binstubs - я не передал вариант, запрашивающий их. По крайней мере, я так не думаю.--10-->

➜ 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##*/}" "$@"

у меня ничего нет в моем ~/.bundle/config либо.

пожалуйста, помогите мне поставить kabosh на нежелательные binstubs!

3 ответов


Bundler генерирует binstubs на основе каждого приложения. Если вы побежали bundle install --binstubs в какой-то момент в прошлом, Bundler будет помнить, что и генерировать binstubs в любое время вы запустите установку снова. Чтобы отключить их, вы можете запустить bundle install --no-binstubs, или run rm -rf .bundle/config. В любом случае, это отключит генерацию binstub.


параметр --no-binstubs тут не удалите запомнившуюся опцию в bundler 1.5.3!

вместо того, чтобы использовать bundle config --delete bin, или редактировать .bundle/config и удалите строку BUNDLE_BIN из файла, затем удалите ненужные файлы из локального каталога binstubs.

пример:

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

если вы все еще получаете binstubs после смены $HOME/users/.bundle/config file более чем вероятно, что у вас есть другая конфигурация где-то. Чтобы выяснить, где выполнить команду follow

$ 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"

то, что вы ищете-это bin информация. Эта информация дает вам пути к файлам, которые имеют информацию о конфигурации в них. что вы можете сделать, чтобы исправить это, перейдите в файл конфигурации и удалите строку, которая говорит BUNDLE_BIN: bin это или изменить bundle bin на false BUNDLE_BIN: 'false'

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

если вы запустите bundle config снова не должен видеть конфигурацию bin, или вы должны увидеть, что она установлена в false. В этом примере я установил значение false, чтобы получить этот новый результат.

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"

что-то отметить, однако каждое приложение ruby, которое отвечает на пакет, может иметь свой собственный обычай .bundle / config

если вы обновите все .bundle/config у вас не должно быть новых файлов, созданных в каталоге bin, когда вы ruby bundle или bundle install

узнал что-то еще иногда он думает, что false-это каталог, поэтому лучше просто удалить строку, которая BUNDLE_BIN может быть проще.