RubyGem 버전 다운그레이드

RubyGem 버전 다운그레이드

명령을 sudo rake db:migrate실행하면 아래와 같은 오류 메시지가 나타납니다.

rake aborted!
RubyGem version error: rack(1.4.1 not ~> 1.1.0)

RubyGem 버전이 예상보다 늦은 것 같습니다. RubyGem 버전을 어떻게 다운그레이드할 수 있나요?

답변1

RubyGems의 "너무 새로운" 버전은 실제로 일부 오래된 애플리케이션(주로 여전히 Rails 2.x를 사용하는 애플리케이션)에서 문제가 될 수 있지만 게시한 오류 메시지는 다른 원인을 나타내는 것 같습니다. 귀하의 애플리케이션은 특정 버전의 Rack gem을 원하는데 귀하가 설치한 버전이 해당 요청에 맞지 않을 수 있습니다.

귀하의 애플리케이션에는 랙 ~> 1.1.0이 필요합니다. 해당 조건은 1.1.x 시리즈의 모든 버전(예: 1.1.0, 1.1.5 또는 1.1.345)과 일치하지만 1.2.0 또는 2.0.0은 일치하지 않습니다. 1.4.1에서 Rack을 설치하신 것 같은데, 조건이 맞지 않습니다~> 1.1.0.

다행스럽게도 동일한 gem의 여러 버전을 나란히 설치할 수 있습니다. 설치한 Rack의 버전을 확인하려면 다음을 사용할 수 있습니다.

gem list -l rack

해당 목록은 이름이 'rack'으로 시작하는 로컬에 설치된(-l 스위치로 인해) gem입니다. 해당 목록에는 아마도 1.1.x 시리즈 버전이 없을 것입니다.

특정 버전의 gem을 설치하려면 --version=xyz 옵션을 사용할 수 있습니다.

gem install rack --version=1.1.0

마이그레이션이 이를 통해 실행될 가능성이 있습니다.

실제로 RubyGems를 다운그레이드해야 하는 경우 먼저 위에서 수행한 것과 유사하게 다운그레이드하려는 버전에 RubyGems gem( :D )을 설치해야 합니다. 예:

gem install rubygems-update --version=x.y.z

그런 다음 "업데이트"(귀하의 경우 다운그레이드)를 실행할 수 있습니다.

gem update --system x.y.z

여기서 xyz는 원하는 버전 번호입니다. 특정 버전으로의 "업데이트"가 RubyGems 1.5.1에 ​​도입되었으므로 그 이하 버전으로 다운그레이드할 수 없습니다.

관련 정보