설치된 모든 보석을 제거하고 다시 시작


92

저는 최근에 Ruby와 Ruby on Rails를 배우기 시작했고 시작 자료를 많이 보았습니다. 최근에 gem이 설치되지 않거나 설치되지만 어떤 이유로 든 사용할 수없는 오류가 계속 발생한다는 사실을 발견했습니다. 그리고 Ruby를 설치하기 만하면 다시 한 번 모든 것을 제거하기로 결정했습니다. 설치를 다시 시작하십시오. 한 교육 비디오에서 RVM으로 대부분의 gem을 설치 했으므로 변경 사항이 있는지 모르겠습니다.

간단히 말해서 내 질문은 "RVM, Rubygems 및 설치된 모든 Gems를 제거하여 Ruby로 다시 시작할 수있는 방법은 무엇입니까?"입니다.

편집 : Mac OS 10.6에 있습니다.


1
/ opt / ruby에 설치 했습니까? 그게 내가 루비를 빨리 제거 할 수 있도록하는 일입니다.
대안

참조 stackoverflow.com/questions/15100496/... 이 :) 아니라 1.9.3을 위해 일한다
나단 릴리 엔탈

질문의 제목과 끝에있는 "짧은 질문"요약은 서로 다른 두 가지입니다 ...
mpowered

답변:


119

로부터 RVM의 지원 사이트 :

RVM은 모든 것을 ~ / .rvm에 설치합니다. 시스템에서 RVM을 제거하려면 'rm -rf ~ / .rvm'을 실행하십시오. ~ / .rvmrc에 추가 구성 파일이 하나있을 수 있고 bash / zsh 시작 파일에 RVM 후크가있을 수 있습니다.

따라서 명령 줄로 이동하여 rm -rf ~/.rvm

설치된 모든 gem은 ~ / .rvm 폴더에 있으므로 위의 작업을 수행하면 gem과 설치된 루비가 한 번에 제거됩니다.

기본 루비 설치와 함께 RVM 이전에 추가 한 gem은 명령 프롬프트에 다음을 입력하여 제거 할 수 있습니다.

for x in `gem list --no-versions`; do gem uninstall $x -a -x -I; done

1
방금 실행했지만 gems는 여전히 설치되어 있습니다. 그러나 그것은 그것을 다시로드 한 것처럼 보입니다. Mac XCode에서 기본값으로 다시로드되었는지 또는 무엇인지 확실하지 않습니다.
Dave Long

당신이 사전 RVM 추가 한 보석을 제거하는 또 다른 라인에 추가
michaelmichael을

1
제거하는 동안 (바이너리, 버전 또는 종속성에 대해) 메시지를 표시하지 않도록 gem 제거에 '-all -x -I'옵션을 추가합니다.
timmfin 2012

4
참고로 전체 명령은 다음과 같습니다. for x in`gem list --no-versions`; gem 제거 $ x -a -x -I; 수행
다니엘 Rehner 보낸

8
더 많은 참조를 위해, 다른 옵션 :gem list --no-versions | xargs gem uninstall -aIx
trisweb

70
gem uninstall -aIx

프롬프트없이 모든 gem을 제거합니다.

옵션

-a, --[no-]all                   Uninstall all matching versions
-I, --[no-]ignore-dependencies   Ignore dependency requirements while
                                 uninstalling
-x, --[no-]executables           Uninstall applicable executables without
                                 confirmation

: 그것은 나에게 준다ERROR: While executing gem ... (Gem::InstallError) gist is not installed in GEM_HOME, try: gem uninstall -i /usr/share/rubygems-integration/all gist
user2023370을

34

들어 윈도우유닉스 복사 / 프롬프트 명령 (붙여 넣기 루비 1.9.x를 ).

ruby -e "`gem list`.split(/$/).each { |line| puts `gem uninstall -Iax #{line.split(' ')[0]}` unless line.strip.empty? }"

2
ERROR: While executing gem ... (Gem::CommandLineError) Please specify at least one gem name (e.g. gem build GEMNAME) -e:1: no .<digit> floating literal anymore; put 0 before dot bundle (0.0.1) ^ -e:1: syntax error, unexpected tINTEGER bundle (0.0.1) ^
isomorphismes

@isomorphismes 내가 그것을 고쳤는지 확실하지 않지만 지금 명령을 시도 할 수 있습니다.
Haris Krajina 2013 년

23

RVM을 사용하면 다음을 입력 할 수 있습니다.

rvm gemset empty GEMSET

여기서 GEMSET은 비 우려는 gemset입니다. 그때...

번들 설치

yum install bundler 그리고 마지막으로

bundle install

15

rvm implode( cli docs 참조 ) 작동하는 것처럼 보이며 남은 음식을 어디에서 찾아야하는지 알려줍니다.


2
이것은 기술적으로 가장 정답이며 정확히 설계된 것입니다.
mpowered

"implode-관리하는 모든 루비 설치, ~ / .rvm의 모든 것을 제거합니다."
Nein

"implode는 RVM 자체를 제거하지 않습니다. 기본적으로 설치가 시스템에 수행 한 모든 작업을 수동으로 정리하는 것 외에는 RVM을 자동으로 제거 할 수있는 방법이 없습니다. 이는 큰 단점입니다. RVM을 제거하는 유일한 방법은 수동으로 정리하는 것입니다. 시스템에 한 모든 것. " 출처 : duseev.com/articles/rbenv-vs-rvm 참고 : 저는 초보자이며 기사의 조언이 정확한지 판단 할 자격이 없습니다.
Mark Gavagan

1
@MarkGavagan 나는 그것이 모든 것을하는 것은 아니라는 데 동의하지만, 그 밖에해야 할 일을 알려줄 것입니다 (위에서 "잔여 물"이라고 언급 한 것). 사실, rvm 제거에 대한 바로 그 기사의 첫 번째 단계는 ... rvm impode:-)
chesterbr

5
  1. 이것은 Ubuntu 16.04에서 저에게 효과적입니다. 나를 위해 명령 레일 -v를 실행할 때 NameError 때문에 오류가 발생합니다. 3 가지 버전의 레일 (4.2.0, 4.2.6, 5.0.0.1)을 설치했습니다. gem uninstall rails -v version number 명령을 사용하여 불필요한 gem을 제거하려고했습니다. 했지만 할 수는 없지만이 문제를 해결할 방법을 찾았습니다. 모든 gem을 제거하려면 bash 스크립팅으로 gem 목록의 모든 항목을 반복해야합니다. 이 방법은 매우 불편합니다. Rubygems 2.1.0 덕분에 이제 하나의 명령으로 할 수 있습니다.

    1 단계

    먼저 Rubygems를 2.1.0 이상으로 업그레이드하십시오. 이 명령을 실행하려면 (이전 버전에서 작업하는 경우. gem -v 또는 gem --version 중 하나를 사용하여 gem 버전을 확인할 수 있습니다. )

    gem 업데이트-시스템

    gem-버전

    2 단계

    터미널에서이 명령을 실행하십시오.

    gem 제거 --all

    3 단계

    gem 번들을 설치합니다 (예방을 위해서만 생각할 필요는 없습니다) gem install bundle

    단계-4
    이 명령을 사용하여 시스템에 레일을 설치하십시오. gem install rails -vspecific version you want to install 공식 사이트 레일에서 모든 버전 의 레일을 확인할 수 있습니다 . 예 :-레일 4.2.6 버전을 설치했습니다. 요구 사항에 따라 설치합니다. gem 설치 레일 -v 4.2.6

    단계-5

    마지막으로 기본 명령 레일 -v를 사용하여 설치된 레일 프레임 워크 애플리케이션의 버전을 확인합니다 . 현재 버전의 Rails 프레임 워크를 반영합니다. 즐겨 :)

    참고 문헌

http://ruby-journal.com/how-to-uninstall-all-ruby-gems/ http://guides.rubyonrails.org/v4.1/getting_started.html


3

1 단계:

처음에는 다음과 같은 오류가 계속 발생했습니다.

/ usr / bin 디렉토리에 대한 쓰기 권한이 없습니다.

권한을 얻기 위해 루트 사용자가되었습니다 (현재 이해를 벗어난 이유로 잠재적으로 위험합니다) .

sudo -s

신용

2 단계:

그런 다음 계속해서 다음과 같은 오류가 발생했습니다.

[gem]은 기본 gem이므로 제거 할 수 없습니다.

이를 통해 모든 것을 제거 할 수있었습니다.

for i in `gem list --no-versions`; do gem uninstall -aIx $i; done

신용

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