簡體   English   中英

擺脫 ruby 不會死的寶石

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM