루비 젬을 업그레이드하는 방법


206

gem을 1.8로 업그레이드해야합니다. 각 데비안 패키지를 설치하려고 시도했지만 업그레이드되지 않는 것 같습니다.

anujm@test:~$ dpkg -l |grep -i rubygem
ii  rubygems                               1.3.5-1ubuntu2                                  package management framework for Ruby libraries/applications
ii  rubygems-lwes                          0.8.2-1323277262                                LWES rubygems
ii  rubygems1.8                            1.3.5-1ubuntu2                                  package management framework for Ruby libraries/applications
ii  rubygems1.9                            1.3.5-1ubuntu2                                  package management framework for Ruby libraries/applications
anujm@test:~$ 


anujm@test:~$ gem
gem     gem1.8  gem1.9  
anujm@test:~$ sudo gem1.8 install serve
ERROR:  Error installing serve:
        multi_json requires RubyGems version >= 1.3.6
anujm@test:~$

2
명확히하기 위해 귀하의 질문은 Rubygems가 관리하는 특정 보석이 아닌 Rubygems 자체를 업데이트하는 방법에 관한 것입니다.
Michael

답변:


471

rubygems-update 설치

gem install rubygems-update
update_rubygems
gem update --system

이 명령을 루트로 실행하거나 sudo를 사용하십시오.


1
ue 제안 gem update --system이 데비안에서 비활성화되어 있으면이 예외가 발생합니다. RubyGem은 abian 또는 apt-get으로 공식 데비안 저장소를 사용하여 업데이트 할 수 있습니다.
Anuj

3
여기에 유니 코드 gem ( github.com/blackwinter/unicode/issues/5 ) 의 문제로 인해 답변 솔루션을 실행 gem pristine unicode한 후 gem을 다시 빌드하고 사용할 수 있도록 실행 해야했습니다.
reallynice

1
감사 minitest합니다. NFS 파티션 cf에 설치하는 데 도움이되었습니다. github.com/rubygems/rubygems/issues/1161
Oncle Tom

12
rubygems-update기본적으로 설치됩니다. 따라서 그냥 실행하는 것 gem update --system입니다.
dskecse

2
일반적으로이 명령을로 실행하지 않으려 고합니다 sudo. 그러면 시스템 루비가 업그레이드됩니다. rvm또는rbenv
Hendrik

54

다음을 수행하여 모든 보석을 업데이트 할 수 있습니다.

sudo gem update


44
이것은 질문을 찾는 답변입니다.
Michael

1
없이 sudo당신이 일반 사용자로 보석을 설치 한 경우 (루트가 아주 좋은 어쨌든 아니므로 보석을 설치).
akostadinov

4
문제는 "모든 보석을 어떻게 업데이트합니까?"가 아닙니다. 오히려 "내 컴퓨터에서 RubyGems를 어떻게 업데이트합니까?"
aceofbassgreg

19

또는:

gem update `gem outdated | cut -d ' ' -f 1`

#brilliant 감사합니다. --force덮어 쓰기 확인을 위해 자동화가 중단되지 않도록하기 위해서만 추가 했습니다
SaxDaddy

질문에 대답하지 않습니다
agbodike

각각 쉘 체크 오류 수정 : gem update "$(gem outdated | cut -d ' ' -f 1)";.
BernhardWebstudio

11

gem을 이와 같은 특정 버전으로 업데이트 할 수 있습니다.

gem update --system 'version'

gem update --system '2.3.0'

1
debian gem update --system "2.1.0"을 기반으로 한 배포에서 명령이 작동하지 않습니다. 오류 : gem ... (RuntimeError) gem update를 실행하는 동안 --bian은 데비안에서 비활성화되어 있습니다. rubygems 데비안 패키지로, 미묘한 방법으로 데비안 시스템을 손상시킬 수 있습니다. 루비 젬을 업데이트하는 데비안이 지원하는 방법은 데비안 공식 저장소를 사용하여 apt-get을 사용하는 것입니다. 실제로 무엇을하고 있는지 알더라도 REALLY_GEM_UPDATE_SYSTEM 환경 변수를 설정하여 루비 젬을 업데이트 할 수 있지만 데비안은이 기능을 완전히 지원하지 않습니다.
jeff


5

다른 답변이 부정확하거나 오래된 것으로 나타났습니다. 가장 좋은 것은 실제 문서참조하는 것 입니다.

짧은 버전 : 대부분의 경우 gem update --system 충분합니다.

맹목적으로 사용해서는 안됩니다 sudo. 실제로 필요하지 않은 경우에는 사용하지 않아야합니다.


4

나를 위해 단순히 실행하기에 충분했습니다.

gem update

5
이것은 rubygems 소프트웨어 자체가 아닌 gem을 업데이트하기위한 것입니다.
피터 H. 볼링

1
사실이지만 이것이 "update gem version"과 같은 검색에 대한 첫 번째 Google 결과이므로이 답변이 여기에 와서 기쁩니다.
ncrypticus

-1

하나의 gem 만 (그리고 의존성) 업데이트하려면 :

    bundle update gem-name

그러나 gem 만 업데이트하려면 (종속성을 업데이트하지 않고)

    bundle update --source gem-name

1
rubygems 소프트웨어 자체가 아닌 특정 gem을 업데이트하기위한 것입니다.
thisismydesign

1
@thisismydesign 나는 이것이 특정 보석만을 업데이트하도록 지정했다고 생각합니까?
루토 콜린스

예, 그러나 그것은 질문에 관한 것이 아닙니다.
thisismydesign

1
내가 참조. 그러나 나는 이것이 내가 여기에 먼저 착륙 한 나와 같은 누군가를 도울 것이라는 것을 알고 있습니다. :)
Ruto Collins
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.