[ruby-on-rails] Rails 앱이 사용중인 gem의 버전을 확인하는 방법

Rails 앱을 조사 중입니다. prod 서버에 특정 gem의 두 가지 버전이 설치되어 있습니다. prod 앱이 사용중인 버전을 어떻게 알 수 있나요?



답변

Rails 3 및 Rails 4에서는 bundle show

Rails 2에서는 rake gems어떤 gem, 의존성, 버전이 설치되고 고정되어 있는지 출력합니다.


답변

번 들러를 사용하는 경우 다음에서 버전을 가져올 수 있습니다.

bundle show [gemname]


답변

이 정보를 찾고 분류하는 데 예상보다 오래 걸렸기 때문에 다른 사람들이 볼 수 있도록 여기에 게시하고 싶었습니다. 또한 Rails 3에 대해 이것을 약간 명확히하고 싶었습니다.

  • 스크립트 / 정보가 rake about 세부 정보 로 대체되었습니다 . here . Rails 3의 모든 커맨드 라인 변경 사항에 관심이 있다면 여기 에서 찾을 수 있습니다 .

  • rake gems Rails 3에서는 작동하지 않습니다. 대신 bundle show

예를 들어, 모든 버전의 gem을 파일에 저장하여 볼 수 있습니다.

gem list > all_gems.txt

Rails 앱이 다음과 함께 사용중인 버전을 확인할 수 있습니다.

bundle show > project_gems.txt

Vim과 같은 편집기를 사용하면 vimdiff를 사용하여 변경 사항을 쉽게 확인할 수 있습니다.


답변

이를 알아내는 더 직접적인 방법이있을 수 있지만 콘솔을로드하고 다음과 같은 특정 버전이 필요한 경우 :

gem 'RedCloth', '3.0.4'

이미 활성화 된 버전을 알려줍니다.

=> Gem::LoadError: can't activate RedCloth (= 3.0.4, runtime) for [], already activated RedCloth-4.2.2


답변

터미널에서

  bundle show <gem-name>
  bundle show | grep <gem-name>

또는

  gem list | grep <gem-name>

예를 들면 :

  bundle show rails
  bundle show | grep rails

  gem list | grep rails


답변

또한 목록이 있습니다 Gemfile.lock앱의 루트 디렉토리에있는 있습니다.

이런 이유로 나는 Gemfile.lock.gitignore. 에서 gem 버전을 지정하는 것을 잊었을 때 두 번 이상 저를 구했고 GemFilegem이 주요 변경 사항으로 업데이트되었습니다.


답변

을 사용해보십시오 script/about. 당신 config/environment.rb도 그것에 대한 정보를 가지고 있습니다.

당신에 config/environment.rb당신은 어떤 특정의 버전을 지정할 수 있습니다 gem응용 프로그램을 사용해야합니다. 그러나 gem시스템에 여러 버전의 버전이 설치되어 있고 버전을 지정하지 않으면 해당 gem의 최신 버전이 응용 프로그램에서 사용됩니다.