programing

번들 설치가 공급 업체 / 번들에 gem을 설치하는 이유는 무엇입니까?

nasanasas 2020. 12. 29. 07:09
반응형

번들 설치가 공급 업체 / 번들에 gem을 설치하는 이유는 무엇입니까?


bundle install모든 보석을 설치할 때마다

app_dir/vendor/bundle

경로를 사용하고 디스크 공간을 많이 사용합니다. 나는 또한 이것에 의해 개발하는 동안 gemsets를 설치 해야하는 곳에 gem을 설치하려고 시도했습니다.

bundle install --no-deployement

하지만 이것은 나를 위해 작동하지 않고 vendor/bundle. 모든 응용 프로그램 또는 루비 gemsets 위치에 전역 적으로 설치되도록하려면 어떻게해야합니까? 나는 또한 제거를 시도 .bundle/config했지만 아무것도 바뀌지 않았습니다.

나는 사용하고있다 :

rvm version: 1.23.14
ruby version: 2.0.0-p247
rails 3.2.13

여기 내 ~/.bash_profile:

export PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
eval "$(rbenv init -)"
alias pg='pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log'

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm" # Load RVM function

~/.bashrc:

PATH=$PATH:$HOME/.rvm/bin # Add RVM to PATH for scripting

필요한 기타 정보 :

aman@Amandeeps-MacBook-Pro ~/Projects/qe (develop)*$ which bundle
/Users/aman/.rvm/gems/ruby-2.0.0-p247@global/bin/bundle

aman@Amandeeps-MacBook-Pro ~/Projects/qe (develop)*$ rbenv which bundle
/Users/aman/.rbenv/versions/2.0.0-p247/bin/bundle

amandeep@Amandeeps-MacBook-Pro ~/Projects/qe (develop)*$ rbenv which ruby
/Users/aman/.rbenv/versions/2.0.0-p247/bin/ruby

aman@Amandeeps-MacBook-Pro ~/Projects/qe (develop)*$ rbenv gemset active
rbenv: NO such command `gemset'

aman@Amandeeps-MacBook-Pro ~/Projects/qe (develop)*$ which rails
/Users/aman/.rvm/gems/ruby-2.0.0-p247@global/bin/rails

나는 이것을 시도했지만 도움이되지 않았습니다.

bundle install --system

.bundle디렉토리 제거 .

gemsets가 아닌 vendor/bundle기본 위치에 gem을 설치하도록 도와주세요 .


프로젝트에서 당신은해야합니다 폴더 .bundle에 대한 구성을 보유하고 디렉토리를 bundler. 해당 폴더를 삭제 해보십시오. gem의 설치 경로를 시스템 전체 설정으로 재설정해야합니다.

설치 경로 만 편집하려는 경우 .bundle/config선호하는 편집기로 열면 에 대한 경로가 표시됩니다 vendor/bundle. 해당 줄을 제거하면 다른 구성을 제거하지 않고 기본값으로 복원합니다.

또한 덜 빈번한 또 다른 시나리오는 시스템 전체 설정이 엉망이되는 것입니다. @NaoiseGolden에 따르면 :

.bundle내 홈 폴더 (rm -rf ~ / .bundle)에서 삭제해야했습니다 . 실행중인 구성을 확인할 수 있습니다.bundle env


다음을 사용하여 설치해보십시오.

bundle install --system

처음에는 번들 설치가 --path플래그 로 실행 되었고 이제 번 들러가 해당 구성을 기억한다고 생각합니다.

번 들러 매뉴얼 페이지에서

일부 옵션은 번들 설치 호출 사이와 Bundler 런타임에서 기억됩니다.

번들 설치에 대한 후속 호출은 원래 --path에 전달 된 디렉토리에 gem을 설치 합니다. Bundler 런타임은 해당 위치에서 gem을 찾습니다. bundle install --system 을 실행하여이 옵션을 되돌릴 수 있습니다 .

편집 : 아래 주석에서 언급했듯이, 그렇지 않으면 시스템 전체에 보석이 설치됩니다. rvm 등을 사용하여 다른 앱의 환경을 관리하는 경우위에서 언급 한 @IuriG의 답변을 확인하십시오.


  1. bundle env경로 및 번들 구성을 보는 데 사용

  2. 다음 ~/.rvm/gems/ruby-2.0.0-p247과 같이 번들 경로를 설정 하십시오.

    bundle install --path ~/.rvm/gems/ruby-2.0.0-p247
    

    이는 전역 적이며 고유 한 사용자 지정 경로를 사용할 수도 있습니다.

  3. Post this bundle install will never need path again and will always install all of your gems in that directory(~/.rvm/gems/ruby-2.0.0-p247 in my case) for that app not in app_folder/vendor/bundle


Try running bundle env. This will tell you where the path configuration is set.


First of all, acording to your info, it seems that you have installed both rvm and rbenv. Thats a very bad idea. You have to delete one of them (rbenv + bundler works like a charm for me, didnt try rvm).

In regard to your question check .bundle/config in your project, as all the configuration for bundle to that project lies there (if its still deleted, you can create a new one). You migh want to add this line (or change it, if its already there): BUNDLE_DISABLE_SHARED_GEMS: '0' for sharing gems, they go where your BUNDLE_PATH: is set (BUNDLE_PATH: vendor in my case).

For the global configuration file look in ~/.bundle/config

Also this man page could be of use: bundle config


To Install Gem in system wide avoiding path vendor/bundle, just run the following command in project directory

bundle install --system

ReferenceURL : https://stackoverflow.com/questions/19961821/why-bundle-install-is-installing-gems-in-vendor-bundle

반응형