การลบอัญมณีที่ติดตั้งทั้งหมดและเริ่มต้นใหม่


92

ฉันเพิ่งเริ่มเรียนรู้ Ruby และ Ruby on Rails และได้ดูสื่อการเริ่มต้นมากมายเหลือเฟือ เมื่อเร็ว ๆ นี้ฉันพบว่าฉันได้รับข้อผิดพลาดที่อัญมณีไม่ติดตั้งหรือจะติดตั้ง แต่ไม่สามารถใช้งานได้ด้วยเหตุผลบางประการและฉันได้ตัดสินใจว่าต้องการลบทุกอย่างออกไปอีกครั้งเพียงแค่ติดตั้ง Ruby และเริ่มต้นใหม่ด้วยการติดตั้ง วิดีโอการฝึกอบรมหนึ่งรายการให้ฉันติดตั้งอัญมณีส่วนใหญ่ด้วย RVM ดังนั้นฉันจึงไม่รู้ว่าจะมีการเปลี่ยนแปลงอะไรหรือไม่

ดังนั้นในระยะสั้นคำถามของฉันคือ "ฉันจะกำจัด RVM, Rubygems และ Gems ที่ติดตั้งทั้งหมดได้อย่างไรเพื่อที่ฉันจะได้เริ่มต้นใหม่ด้วย Ruby เพียงอย่างเดียว?

แก้ไข: ฉันใช้ Mac OS 10.6


1
คุณติดตั้งใน / opt / Ruby หรือไม่? นั่นคือสิ่งที่ฉันทำเพื่อให้สามารถกำจัดทับทิมได้อย่างรวดเร็ว
ทางเลือกที่

ดูstackoverflow.com/questions/15100496/… สิ่งนี้ควรใช้กับ 1.9.3 เช่นกัน :)
Nathan Lilienthal

ชื่อคำถามของคุณและสรุป "คำถามสั้น ๆ " ในตอนท้ายเป็นสองสิ่งที่แตกต่างกัน ...
mpowered

คำตอบ:


119

จากไซต์สนับสนุนRVM :

RVM ติดตั้งทุกอย่างลงใน ~ / .rvm ในการลบ RVM ออกจากระบบของคุณให้รัน 'rm -rf ~ / .rvm' คุณอาจมีไฟล์ config เพิ่มเติมหนึ่งไฟล์ใน ~ / .rvmrc และแน่นอนว่า RVM hook ในไฟล์เริ่มต้น bash / zsh ของคุณ

ไปที่บรรทัดคำสั่งและพิมพ์ rm -rf ~/.rvm

อัญมณีที่ติดตั้งทั้งหมดอยู่ในโฟลเดอร์ ~ / .rvm ดังนั้นการทำตามขั้นตอนข้างต้นจะเป็นการลบอัญมณีและทับทิมที่ติดตั้งในครั้งเดียว

อัญมณีที่คุณเพิ่ม pre-RVM ด้วยการติดตั้งทับทิมเริ่มต้นสามารถลบออกได้โดยพิมพ์สิ่งนี้ที่พรอมต์คำสั่ง

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

1
ฉันเพิ่งวิ่งไป แต่ยังติดตั้งอัญมณีอยู่ อย่างไรก็ตามดูเหมือนว่าจะโหลดซ้ำ ไม่แน่ใจว่ามันโหลดใหม่ด้วยค่าเริ่มต้นจาก Mac XCode หรืออะไร ...
Dave Long

เพิ่มอีกบรรทัดเพื่อกำจัดอัญมณีที่คุณเพิ่มไว้ล่วงหน้า
michaelmichael

1
ฉันจะเพิ่มตัวเลือก '-all -x -I' เพื่อถอนการติดตั้งอัญมณีเพื่อป้องกันไม่ให้แจ้งเตือนคุณ (สำหรับไบนารีเวอร์ชันหรือการอ้างอิง) ขณะถอนการติดตั้ง
timmfin

4
สำหรับการอ้างอิงคำสั่งเต็มคือ: สำหรับ x ใน "รายการอัญมณี - ไม่มีเวอร์ชัน"; ทำการถอนการติดตั้ง gem $ x -a -x -I; เสร็จสิ้น
Daniel Rehner

7
สำหรับการอ้างอิงเพิ่มเติมตัวเลือกอื่น:gem list --no-versions | xargs gem uninstall -aIx
trisweb

69
gem uninstall -aIx

ถอนการติดตั้งอัญมณีทั้งหมดโดยไม่ต้องแจ้ง

ตัวเลือก

-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

สำหรับWindowsและUnixคัดลอก / วางในพรอมต์คำสั่ง ( Ruby 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

22

ใช้ RVM คุณสามารถพิมพ์ ...

rvm gemset empty GEMSET

โดยที่ GEMSET คืออัญมณีที่คุณต้องการว่างเปล่า แล้ว ...

ติดตั้งบันเดิล

yum install bundler และในที่สุดก็

bundle install

15

rvm implode(ดูcli docs ) ดูเหมือนจะใช้งานได้ - และยังบอกให้คุณทราบว่าจะหาของเหลือจากที่ใด


2
นี่เป็นคำตอบที่ถูกต้องที่สุดในทางเทคนิคและถูกออกแบบมาเพื่ออะไร
mpowered

"ระเบิด - ลบการติดตั้งทับทิมทั้งหมดที่จัดการทุกอย่างใน ~ / .rvm"
Nein

"การระเบิดไม่ได้ถอนการติดตั้ง RVM เองโดยทั่วไปไม่มีวิธีใดในการถอนการติดตั้ง RVM โดยอัตโนมัตินอกจากการล้างข้อมูลทุกอย่างที่การติดตั้งทำกับระบบของคุณด้วยตนเองและนั่นเป็นข้อเสียอย่างมากวิธีเดียวในการถอนการติดตั้ง RVM คือการล้างข้อมูลด้วยตนเอง ทุกอย่างที่ทำกับระบบของคุณ " แหล่งที่มา: duseev.com/articles/rbenv-vs-rvm หมายเหตุ: ฉันเป็นมือใหม่และไม่มีเงื่อนไขในการพิจารณาว่าคำแนะนำในบทความนั้นถูกต้องหรือไม่
Mark Gavagan

5
  1. นี่ใช้ได้กับฉันบน Ubuntu 16.04 สำหรับฉันเมื่อฉันเรียกใช้รางคำสั่ง -v มันเกิดข้อผิดพลาดเนื่องจาก NameError ฉันได้ติดตั้งราง 3 เวอร์ชัน (4.2.0, 4.2.6, 5.0.0.1) ฉันพยายามถอนการติดตั้ง gem ที่ไม่จำเป็นโดยใช้ command gem ถอนการติดตั้งราง -v หมายเลขเวอร์ชันแต่ทำไม่ได้ แต่ฉันพบวิธีแก้ปัญหานี้ ในการถอนการติดตั้งอัญมณีทั้งหมดคุณต้องวนซ้ำรายการทั้งหมดในรายการอัญมณีด้วยการเขียนสคริปต์ทุบตี วิธีนี้ไม่สะดวกมาก ขอบคุณ Rubygems 2.1.0 ตอนนี้คุณสามารถทำได้ด้วยคำสั่งเดียว

    ขั้นตอนที่ 1

    ประการแรกโปรดตรวจสอบให้แน่ใจว่าคุณได้อัปเกรด Rubygems เป็น 2.1.0 หรือใหม่กว่า สำหรับสิ่งนี้ให้รันคำสั่งนี้ (ในกรณีที่คุณกำลังทำงานกับเวอร์ชันที่เก่ากว่าคุณสามารถตรวจสอบเวอร์ชัน gem ของคุณโดยใช้คำสั่งใดก็ได้ gem -vหรือgem --version )

    การอัปเดตอัญมณี - ระบบ

    อัญมณี - รุ่น

    ขั้นตอนที่ 2

    เรียกใช้คำสั่งนี้ในเทอร์มินัลของคุณ

    ถอนการติดตั้งอัญมณี - ทั้งหมด

    ขั้นตอน - 3

    ติดตั้งแพ็กเกจอัญมณี (ไม่จำเป็นฉันคิดว่าเพื่อการป้องกันเท่านั้น) แพ็กเกจติดตั้งอัญมณี

    ขั้นตอน - 4
    ติดตั้งรางในระบบของคุณโดยใช้คำสั่งนี้ gem ติดตั้งราง -vspecific version you want to install คุณสามารถตรวจสอบรุ่นรางบนรางเว็บไซต์อย่างเป็นทางการได้ทุกเวอร์ชัน : - ฉันได้ติดตั้งราง 4.2.6 เวอร์ชันแล้วคุณติดตั้งตามความต้องการ รางติดตั้งอัญมณี -v 4.2.6

    ขั้นตอน - 5

    สุดท้ายตรวจสอบรุ่นของแอพลิเคชันที่ติดตั้งรางกรอบโดยใช้คำสั่งพื้นฐานราง -v มันจะสะท้อนเฟรมเวิร์กรางเวอร์ชันปัจจุบัน สนุก :)

    อ้างอิง

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] ได้เนื่องจากเป็นอัญมณีเริ่มต้น

สิ่งนี้ทำให้ฉันสามารถถอนการติดตั้งทุกอย่างได้:

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

เครดิต

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.