Как предотвратить создание 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
может быть проще.