Подтвердить что ты не робот

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

4b9b3361

Ответ 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 может быть проще.