
你能幫我理解我的 ruby 資料夾結構嗎?我不明白為什麼我的寶石散落各處,為什麼它們不被識別為命令。
我將首先解釋我的安裝情況:
/usr/bin/ruby
/usr/bin/ruby1.8
/usr/bin/ruby1.9.1
第一個是到 ruby1.9.1 的軟鏈接,因為“ruby”命令在終端中不起作用。我對「寶石」也做了同樣的事情。我透過下載、解壓縮然後運行 setup.rb 來安裝 rubygems:(我創建了「ruby」資料夾)
/home/pc/ruby/rubygems-1.7.2/setup.rb
/usr/bin/gem
/usr/bin/gem1.8
/usr/bin/gem1.9.1
我使用“sudo gem install”安裝了一些 gem
> gem list
*** LOCAL GEMS ***
compass (0.10.6)
haml (3.0.25)
mustache (0.99.3)
rake (0.8.7)
到目前為止,一切都很好?嗯,不完全是,因為事實證明命令“指南針版本”似乎不存在。我的困惑隨著我查看的每個資料夾而增加。例如,以下路徑對我來說沒有任何意義。為什麼會被隱藏呢?為什麼 Mustache 是這個資料夾中唯一的寶石?
/home/pc/.gem/ruby/1.9.1/cache/mustache-0.99.3.gem
首先,這裡是“gem 環境”,這更沒有意義,因為我肯定已經安裝了 rubygems-1.7.2,就像我在第一段中告訴你的那樣,但這裡顯示的是一個古老的版本 1.3.7。為什麼?我前天安裝了Ubuntu。
RubyGems Environment:
- RUBYGEMS VERSION: 1.3.7
- RUBY VERSION: 1.9.2 (2010-08-18 patchlevel 0) [x86_64-linux]
- INSTALLATION DIRECTORY: /var/lib/gems/1.9.1
- RUBY EXECUTABLE: /usr/bin/ruby1.9.1
- EXECUTABLE DIRECTORY: /var/lib/gems/1.9.1/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-linux
- GEM PATHS:
- /var/lib/gems/1.9.1
- /home/pc/.gem/ruby/1.9.1
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- http://rubygems.org/
ruby --version 返回“ruby 1.8.7”......... 另外,事實證明,所有 gems 都安裝到這個資料夾中(小鬍子也是如此!即使它已經在另一個資料夾中) ,正如“ruby環境”所聲稱的那樣:
/var/lib/gems/1.9.1/gems
但這些寶石都不起作用。除了 rake 之外,我不能調用其中任何一個。所以這就是我可能犯錯的地方,我想我除了“gem install rake”之外還使用了“apt-get install rake”,因為命令“rake”未被識別,並且命令提示字元建議它。我可能也用 rubygems 這樣做過...我是 Linux 新手,我認為命令提示字元知道如何正確安裝這些東西。
。
我必須全部創建系統鏈接,這是不正常的,對嗎?在 Windows 中我沒有遇到這個問題。
答案1
我安裝了 rvm,我仍然不知道為什麼會這麼混亂,但現在我可以輕鬆地強制使用某個 ruby 版本,並且我知道所有 gems 安裝到哪裡。 (進入 rvm 目錄)對我有用。
答案2
我猜你的問題是RubyGems
手動安裝,而不是使用 apt-get 安裝。您可能做了同樣的事情ruby
,或者您缺少一個包含您手動建立的符號連結的元包。
/var/lib/gems/1.9.1/bin
這也是為什麼所有二進位檔案所在的目錄不在您的 $PATH 中的原因。所以你找不到這些 gem 的可執行檔。
當您從 Ruby 1.8 升級到 Ruby 1.9.3 時,隨 Ruby 1.8 安裝的 gem 仍將位於 Ruby 1.8 資料夾中。您可能安裝了不同 Ruby 版本的 RubyGems。
例如,以下路徑對我來說沒有任何意義。為什麼會被隱藏呢?為什麼 Mustache 是這個資料夾中唯一的寶石?
/home/pc/.gem/ruby/1.9.1/cache/mustache-0.99.3.gem
顯然你安裝了 Mustache (沒有 sudo)
gem install mustache
這將為用戶安裝它,用戶安裝目錄是$HOME/.gem/
。該資料夾是隱藏的,因此您不會意外刪除它。您可能必須將其添加到您的 $PATH (或使用--no-user-install
)
解決方案:
不要只是手動下載並安裝 RubyGems(和 ruby)。使用您的套件管理器 ( aptitude
)
之後您可以決定是否要使用aptitude
或 來安裝 gem gem install
:
透過 apt-get-or-gem 安裝軟體包。