[英]getting rid of ruby gems that won't die
我有一些 ruby 寶石,它們不會 go 消失。
我認為這與我安裝它們的時間有關。 有時我忘記在安裝 gem 之前使用“sudo”,這會導致寫入錯誤,並且根據我收集到的信息,我會將 gem 的副本放在我的用戶目錄中,而不是它可以運行的地方。 但是 gem uninstall 不起作用。 它不斷出現在“gem list”中,但無法通過 gem uninstall 或 sudo gem uninstall 將其卸載。 在我的“gem 環境”中找到路徑后,我嘗試直接刪除一個 gem,但仍然將 gem 留在列表中。
也可以只刪除所有寶石並從頭開始嗎? 這些讓我抓狂。
我正在運行 OS X。
假設gem clean
(或sudo gem clean
)不起作用,我會嘗試以下操作以從您的系統中完全刪除所有 gem:
您可以通過運行以下命令查看已安裝 gems 的位置:
gem env paths
要刪除系統上的所有 gem,只需刪除此命令返回的文件夾即可。
此外,在 OSX Leopard 上,默認 gem 安裝在這個文件夾中:
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8
如果您的系統上存在此文件夾,您可以像以前一樣刪除此文件夾以確保刪除所有 gem。
您還可以執行以下操作來刪除已安裝的 gem。
gem list -d [gem name]
gem uninstall --install-dir [install directory] [gem name]
如果前面提到的事情不起作用,我今天必須自己做。
我有一個類似的問題,但根本問題原來是由於某種未知原因而遺留的 gemspecs。
在我以為我已經卸載了所有寶石之后:
matt$ gem1.9 list
*** LOCAL GEMS ***
minitest (1.6.0)
rake (0.8.7)
rdoc (2.5.8)
這里沒有寶石:
matt$ ls -al /opt/local/lib/ruby1.9/gems/1.9.1/gems/
total 0
drwxr-xr-x 2 root admin 68 Jul 23 14:54 .
drwxr-xr-x 8 root admin 272 Mar 3 14:56 ..
他們在那里!
matt$ ls -al /opt/local/lib/ruby1.9/gems/1.9.1/specifications/
total 24
drwxr-xr-x 5 root admin 170 Jul 23 14:54 .
drwxr-xr-x 8 root admin 272 Mar 3 14:56 ..
-rw-r--r-- 2 root admin 129 Nov 1 2010 minitest.gemspec
-rw-r--r-- 2 root admin 121 Nov 1 2010 rake.gemspec
-rw-r--r-- 2 root admin 121 Nov 1 2010 rdoc.gemspec
刪除寶石規格:
matt$ sudo rm /opt/local/lib/ruby1.9/gems/1.9.1/specifications/*
現在寶石不見了:
matt$ gem1.9 list
*** LOCAL GEMS ***
我有一個不會死的 gem 並且必須通過命令gem uninstall -aIx
刪除我的所有 gem 來 go “nuke everything”路線。 然后只需gem install <gemname>
恢復運行。
如果您有一個 gem 的多個版本,您必須先進行清理,然后刪除最終的 gem。
gem cleanup <gemname>
gem uninstall <gemname> --version
通過運行gem update --system
更新您的 ruby gems 版本,然后,希望gem uninstall xxx
可以工作。 [這是舊版本中的錯誤。]
查看RVM ,它允許您在您的用戶下而不是在系統目錄中完全管理您的 ruby 環境。 我發現使用它更容易管理 ruby 版本和 gem。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.