루비 젬의 특정 버전을 설치하는 방법은 무엇입니까?


884

명령 줄 gem도구를 사용하여 특정 버전의 gem을 어떻게 설치할 수 있습니까?

답변:


1158

-v플래그를 사용하십시오 .

$ gem install fog -v 1.8

60
나와 같이 gem의 이후 버전을 이전에 설치 한 경우 다음과 같이 이후 버전을 제거해야합니다 gem uninstall fog. 둘 이상의 버전이 있으면 제거 할 버전을 묻습니다.
Dizzley

3
나는 3 가지 버전의 레이크를 가지고있다 : gem list | grep rake= rake (10.1.1, 10.1.0, 0.8.7).. 레일 2.3.5 프로젝트와 다른 하나의 3.0을 동시에 작업하고있다. 각각의 프로젝트에 대해 특정 버전의 레이크를 어떻게 사용 하는가? 선)?
abbood

@abbood rake _10.1.1_ ...가 작동해야합니다. 누구든지 알고 싶어하는 사람은 누구 입니까?
Koen.

이것이 실행 가능한 바이너리에 영향을 미치지 않는 것 같습니다. 이전 버전을 제거하면 바이너리에서 작동했습니다.
Ciro Santilli 冠状 病毒 审查 六四 事件 法轮功 8

다시 한 번, 여러 개의 투표를 할 수 있기를 바랍니다. 아마도 1 년 이상 분리해야했을 수도 있습니다. :)
Don Branson

192

--version매개 변수 (바로 가기 -v)를 사용하십시오 .

$ gem install rails -v 0.14.1

>=또는 같은 버전 비교기를 사용할 수도 있습니다~>

$ gem install rails -v '~> 0.14.0'

또는 최신 버전의 gem을 사용하는 경우 :

$ gem install rails:0.14.4 rubyzip:'< 1'

Successfully installed rails-0.14.4
Successfully installed rubyzip-0.9.9

이것은 ~>에서 효과가 있었지만 '<0.9,> = 0.7'유형의 상황이 있다면 어떨까요? 두 개의 v 인수를 적용하려고 시도했는데 첫 번째 인수가 무시 된 것처럼 보입니다. 쉼표 구분 기호를 사용하면 구문 분석조차되지 않습니다. 나는 요구 사항보다 큰 요구 사항을 제거하고 수용 가능한 버전을 설치했지만 공식적인 솔루션을 갖는 것이 좋을 것입니다.
Joseph Coco

버전 비교기는 무엇 ~>을 의미합니까?
Dragas

그것은 마지막 숫자가 (에 허용되는 의미 stackoverflow.com/questions/5170547/...를 )
schmijos에게

93

설치용 gem install gemname -v versionnumber

제거 gem uninstall gemname -v versionnumber


80

Ruby 1.9+의 경우 콜론을 사용하십시오.

gem install sinatra:1.4.4 prawn:0.13.0

어떤 gem (및 어떤 버전)을 설치하려고합니까?
Kokizzu

출력이 gem sources비어 있으면 다음 명령을 사용하여 repo를 추가하십시오.gem sources -a https://rubygems.org/
Kokizzu

gem -v1.8.23대 당신의 2.2.2. 이 기능과 같은 새로운입니다 :)
kolypto

루비 1.8는 이미 지원의 끝 ruby-lang.org/en/news/2013/06/30/we-retire-1-8-7
Kokizzu

24

다른 사람들이 지적했듯이 일반적으로 명령에 -v플래그를 사용하십시오 gem install.

gemspec에서 gem을 자른 후 gem을 로컬로 개발하는 경우 :

$ gem install gemname-version.gem

버전 0.8을 가정하면 다음과 같습니다.

$ gem install gemname-0.8.gem

3
좋은 대답입니다. 플래그 "-v"옵션에 다른 코드 블록을 추가하는 것이 좋습니다. 내 눈으로 답을 읽으면 즉시 텍스트 블록이 아닌 코드 블록으로 갔다. 다른 사람들이 똑같이하면 "-v"부분을 놓치게됩니다.
CamHart

8

리눅스

다른 버전의 루비를 설치하려면 다음과 같이 최신 버전의 패키지를 확인하십시오 apt.

$ apt-cache madison ruby
      ruby |    1:1.9.3 | http://ftp.uk.debian.org/debian/ wheezy/main amd64 Packages
      ruby |        4.5 | http://ftp.uk.debian.org/debian/ squeeze/main amd64 Packages

그런 다음 설치하십시오.

$ sudo apt-get install ruby=1:1.9.3

현재 버전이 무엇인지 확인하려면 다음을 실행하십시오.

$ gem --version # Check for the current user.
$ sudo gem --version # Check globally.

버전이 여전히 오래된 경우 다음 방법으로 루비 버전 관리자 ( rvm)를 사용하여 버전을 새 버전으로 전환 할 수 있습니다 .

rvm 1.9.3

참고 : 전역으로 설치 한 sudo경우 접두사를 붙일 수 있습니다 rvm. 또는 /usr/local/rvm/scripts/rvm명령 rvm이 전역에 없으면 실행 하십시오 PATH. rvm 설치 프로세스가 실패한 경우 문제 해결 섹션을 참조하십시오.


문제 해결:

  • 여전히 이전 버전이있는 경우 다음을 통해 rvm (ruby version manager)을 설치하십시오.

    sudo apt-get install curl # Install curl first
    curl -sSL https://get.rvm.io | bash -s stable --ruby # Install only for the user.
    #or:# curl -sSL https://get.rvm.io | sudo bash -s stable --ruby # Install globally. 

    로컬로 설치 한 경우 (현재 사용자 만 해당) 다음을 통해 rvm을로드하십시오.

    source /usr/local/rvm/scripts/rvm; rvm 1.9.3

    전 세계 (모든 사용자) 인 경우 :

    sudo bash -c "source /usr/local/rvm/scripts/rvm; rvm 1.9.3"
  • 새로운 루비 버전에 여전히 문제가 있다면, 다음을 통해 rvm으로 설치하십시오 :

    source /usr/local/rvm/scripts/rvm && rvm install ruby-1.9.3 # Locally.
    sudo bash -c "source /usr/local/rvm/scripts/rvm && rvm install ruby-1.9.3" # Globally.
  • 전 세계에 일부 gem을 설치하고 rvm을 이미 설치 한 경우 다음을 시도 할 수 있습니다.

    rvmsudo gem install [gemname]

    대신에:

      gem install [gemname] # or:
      sudo gem install [gemname]

참고 : RVM gem 작업에는 sudo를 사용하지 않는 것이 좋습니다. sudo를 수행 할 때 root로 명령을 실행하고 다른 쉘의 다른 사용자이므로 RVM이 수행 한 모든 설정은 sudo에서 실행되는 동안 무시됩니다 (예 : GEM_HOME 등). 다시 말해, 'sudo'하자마자 루트 시스템 사용자로 실행되어 환경과 환경을 생성하는 파일은 사용자가 수정할 수 없으며 이상한 일이 발생합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.