이전의 모든 gem 설치를 되돌리고 제거하려는 경우가 있습니다.
예를 들어 친구가 RVM을 사용하도록 레일 개발 시스템을 마이그레이션하도록 지원해야했습니다. 이전에 시스템 전체를 사용 했었기 때문에 gem
여러 프로젝트로 작업 할 때 많은 두통이 발생했습니다. 기본적으로 그는 RVM 변환의 포스터 자식이었습니다.
OSX 시스템에서 모든 gem을 우아하게 제거하려면 어떻게해야합니까?
yes Y | gem uninstall -a -I
이전의 모든 gem 설치를 되돌리고 제거하려는 경우가 있습니다.
예를 들어 친구가 RVM을 사용하도록 레일 개발 시스템을 마이그레이션하도록 지원해야했습니다. 이전에 시스템 전체를 사용 했었기 때문에 gem
여러 프로젝트로 작업 할 때 많은 두통이 발생했습니다. 기본적으로 그는 RVM 변환의 포스터 자식이었습니다.
OSX 시스템에서 모든 gem을 우아하게 제거하려면 어떻게해야합니까?
yes Y | gem uninstall -a -I
답변:
루비 젬> = 2.1.0
gem uninstall -aIx
a
모든 버전의 제거
I
무시 의존성이
x
실행 파일을 포함
Rubgems <2.1.0
for i in `gem list --no-versions`; do gem uninstall -aIx $i; done
ERROR: While executing gem ... (Gem::InstallError) gem "test-unit" cannot be uninstalled because it is a default gem
(gem 2.0.3)
for i in `gem list --no-versions`; do gem uninstall -aIx $i 2>/dev/null; done
새로운 Gemfile을 빌드하고 실행할 수도 bundle clean --force
있습니다. 새 Gemfile에 포함되지 않은 다른 모든 보석이 제거됩니다.
'--no-version'옵션을 활용하여 잘라 내기 단계를 건너 뛰는 가장 다른 버전
gem list --no-version |xargs gem uninstall -ax
모든 것을 제거하기 때문에 'I'옵션이 필요하지 않습니다. 보석이 제거 될 때마다 괜찮습니다.
sudo
일반 사용자가 gem을 설치 한 경우에는 필요하지 않습니다.
둘 중 하나를 사용하십시오
$ gem list --no-version | xargs gem uninstall -ax
또는
$ sudo gem list --no-version | xargs sudo gem uninstall -ax
"gem list"와 "sudo gem list"는 독립적 인 목록을 제공하기 때문에 원하는 것에 따라 두 가지를 모두 실행해야 할 수도 있습니다.
일반적인 "gem list"를 sudo-ed "gem uninstall"과 섞거나 다른 방법으로 사용하지 마십시오. 그렇지 않으면 sudo-installed gem (이전)이 제거되거나 많은 오류가 발생합니다 (후기).
루비를 사용하여 좋아한다면 :
ruby -e "`gem list`.split(/$/).each { |line| puts `gem uninstall -Iax #{line.split(' ')[0]}` unless line.strip.empty? }"
건배
루트로 설치된 gem을 제거하려고 할 때, 기본 gem을 제거하는 중에 오류가 발생하면 xargs가 정지 한 것 같습니다 :
sudo gem list | cut -d" " -f1 | xargs gem uninstall -aIx
# ERROR: While executing gem ... (Gem::InstallError)
# gem "test-unit" cannot be uninstalled because it is a default gem
이것은 모든 사람에게 적용되지는 않지만 여기에 내가 사용한 것이 있습니다.
sudo for gem (`gem list | cut -d" " -f1`); do gem uninstall $gem -aIx; done