Как предотвратить сборщик от создания binstubs?
Я использую oh-my-zsh с plugins=(git bundler)
в моем .zshrc
. Таким образом, мне не нужен связной для создания binstubs. Но bundler делает это в любом случае.
➜ 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 были сгенерированы - я не передал вариант, запрашивающий их. По крайней мере, я не думаю, что я:
➜ 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]"
У меня нет ничего в моем ~/.bundle/config
.
Пожалуйста, помогите мне поместить kabosh в нежелательные binstubs!
Ответы
Ответ 1
Bundler генерирует binstubs для каждого приложения. Если вы когда-то пропустили bundle install --binstubs
, Bundler запомнит это и сгенерирует binstubs в любое время, когда вы снова запустите установку. Чтобы отключить их, вы можете запустить bundle install --no-binstubs
или запустить rm -rf .bundle/config
. В любом случае это отключит генерацию binstub.
Ответ 2
В опции --no-binstubs
не удалить сохраненную опцию в пакете 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
Ответ 3
Если вы все еще получаете binstubs после изменения вашего файла $HOME/users/.bundle/config
, более вероятно, что у вас есть другая конфигурация где-то. Чтобы выяснить, где выполнить следующую команду
$ 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
, что или измените лоток сложения на 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"
Что-то примечание, но каждое рубиновое приложение, которое отвечает на пакет, может иметь свой собственный .bundle/config
Если вы обновите все .bundle/config
, у вас не должно быть новых файлов, созданных в каталоге bin, когда вы ruby bundle
или bundle install
Узнал что-то еще, иногда думает, что false - это каталог, поэтому было бы лучше просто удалить строку, которая BUNDLE_BIN
может быть проще.