[ruby-on-rails] 레일 번들 청소
번들을 업데이트 한 후에는 해당 gem의 최신 버전이 설치되었으므로 쓸모없는 gem이있을 것입니다. bundle
실행 파일 아래에는 이러한 명령이 없습니다 bundle clean
. 이 쓸모없는 보석을 어떻게 제거합니까?
이것은 내 레일 앱에서 슬러그 크기를 줄이기위한 시도입니다.
답변
Bundler 1.1 이상을 사용하는 경우 bundle clean
상상 한대로를 사용할 수 있습니다. bundle install --path
(Bundler는 –path로 지정한 위치를 관리하므로 오래된 gem을 제거하는 책임을집니다) 사용하는 경우 중복 되지만, Bundler를 사용하여 gem을 시스템 gem으로 설치 한 경우 시스템 gem bundle clean --force
은 삭제하지 않습니다. Gemfile에 필요합니다. 눈에 띄게 분명한주의 사항 : Gemfile에없는 시스템 젬에 의존하는 다른 앱이있는 경우이 작업을 수행하지 마십시오!
Pat Shaughnessy는 번 bundle clean
들러 1.1에 대한 좋은 설명 과 기타 새로운 추가 사항을 가지고 있습니다.
답변
RVM을 사용 rvm gemset empty
하는 경우 현재 gemset에 사용할 수 있습니다. 이 명령은 현재 gemset에 설치된 모든 gem을 제거합니다 (gemset 자체는 그대로 유지됩니다). 그런 다음 bundle install
실제 버전의 gem을 설치하기 위해 실행하십시오 . 또한 rake, bundler 등과 같은 일반 gem을 삭제하지 않도록하십시오 rvm gemset empty
(이 경우 gem install
이전 에을 통해 수동으로 설치하십시오 bundle install
).
답변
RVM을 사용하는 경우 gemsets에 gem을 설치할 수 있습니다 . 이렇게하면 전체 정리를 수행하고 싶을 때 gemset을 간단히 제거하면 설치된 모든 gem이 제거됩니다. 다른 옵션은 사용하지 않는 gem을 제거하고 bundle install
명령을 다시 실행하는 것 입니다.
번 들러는 프로젝트 별 gem 버전 관리 도구이기 때문에 bundle clean
명령을 제공하지 않습니다 . 그렇게하면 다른 프로젝트와 관련된 보석도 제거 할 수 있으므로 바람직하지 않습니다. 즉, 번 들러가 gem 디렉토리를 관리하는 데 사용하는 잘못된 도구 일 수 있습니다. 내 개인적인 권장 사항은 RVM gemset을 사용하여 특정 프로젝트 또는 루비 버전에서 gem을 샌드 박스로 만드는 것입니다.
답변
솔직히, 번 들러 순환 종속성에 문제가 있었고 가장 좋은 방법은 rm -rf .bundle
. 두통을 피하고 망치를 사용하십시오.
답변
나는 당신이 보석을 설치한다고 가정 vendor/bundle
합니까? 그렇다면 모든 보석을 삭제하고 정리를 수행하는 것은 bundle install
어떻습니까?
답변
동일한 질문에 대한 답변을 검색 할 때 gem_unused 를 발견했습니다 .
당신은이 기사를 읽고 싶어 있습니다 http://chill.manilla.com/2012/12/31/clean-up-your-dirty-gemsets/
소스 코드는 GitHub의로 볼 수 있습니다 : https://github.com/ apolzon / gem_unused
답변
Gemfile에서 쓸모없는 보석을 제거하십시오. Heroku에 대해 이야기하고 있다면 (당신은 언급하지 않았습니다) 슬러그는 해당 파일의 현재 내용을 사용하여 각각의 새 릴리스를 컴파일합니다.