簡體   English   中英

沒有這樣的文件加載 - ruby​​gems(LoadError)

[英]no such file to load — rubygems (LoadError)

我最近在fedora 12中安裝了rails。我也是linux新手。 在Windows 7上一切正常。但是我在linux中面臨很多問題。 請幫忙!

我已經安裝了所有必需品,以使基本腳本/服務器啟動並運行。 我在嘗試腳本/服務器時彈出boot.rb時出現此錯誤。 我想在此提供的一些細節:

安裝rails,ruby和gem的目錄,

[vineeth@localhost my_app]$ which ruby
/usr/local/bin/ruby

[vineeth@localhost my_app]$ which rails
/usr/bin/rails

[vineeth@localhost my_app]$ which gem
/usr/bin/gem

當我運行腳本/服務器時,這就是錯誤。

[vineeth@localhost my_app]$ script/server
./script/../config/boot.rb:9:in `require': no such file to load -- rubygems (LoadError)
 from ./script/../config/boot.rb:9
 from script/server:2:in `require'
 from script/server:2

PATH文件看起來像這樣

[vineeth@localhost my_app]$ cat ~/.bash_profile
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
 . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH="/usr/local/bin:/usr/local/sbin:/usr/bin/ruby:$PATH"

我想這與PATH文件有關。 讓我知道我需要在這里改變什么。 如果我還有其他變化,請告訴我。

我有預感你有兩個紅寶石版本。 請粘貼以下命令的輸出:

$ which -a ruby

更新了評論:

核彈一個版本,只留一個版本。 我有兩個版本查看寶石的不同位置有同樣的問題。 讓我瘋了幾個星期。 在這里拿到賞金給我同樣的答案我給你。

我所做的就是核對一個紅寶石的安裝並通過端口留下一個可管理的。 我建議這樣做:

  1. 刪除通過端口安裝的ruby版本(yum或任何包管理器)。
  2. 刪除OS附帶的ruby版本(手動硬核rm)。
  3. 從具有不同前綴的端口安裝ruby版本( /usr而不是/usr/local
  4. 重新安裝rubygems

由於安裝了多個ruby副本,我在Ubuntu上遇到了類似的問題。 (1.8和1.9.1)不幸的是我需要他們兩個。 解決方案是使用:

$ sudo update-alternatives --config ruby
There are 2 choices for the alternative ruby (providing /usr/bin/ruby).

  Selection    Path                Priority   Status
------------------------------------------------------------
* 0            /usr/bin/ruby1.8     50        auto mode
  1            /usr/bin/ruby1.8     50        manual mode
  2            /usr/bin/ruby1.9.1   10        manual mode

Press enter to keep the current choice[*], or type selection number: 2
update-alternatives: using /usr/bin/ruby1.9.1 to provide /usr/bin/ruby (ruby) in manual mode.

做完捆綁后安裝成功了。

好吧,我是一個Ruby noob,但我確實得到的修復方式與這里的答案略有不同,所以希望這有助於其他人(tl; dr:我使用RVM將系統Ruby版本切換到rubygems預期的相同版本)。

首先,列出Eimantas提到的所有紅寶石是一個很好的起點:

> which -a ruby
/opt/local/bin/ruby
/Users/Brian/.rvm/rubies/ruby-1.9.2-p290/bin/ruby
/Users/Brian/.rvm/bin/ruby
/usr/bin/ruby
/opt/local/bin/ruby

系統使用的默認Ruby實例似乎是1.8.7:

> ruby -v
ruby 1.8.7 (2010-06-23 patchlevel 299) [i686-darwin10]

而Rubygems使用的版本是由RVM管理的1.9.2版本:

> gem env | grep 'RUBY EXECUTABLE'
  - RUBY EXECUTABLE: /Users/Brian/.rvm/rubies/ruby-1.9.2-p290/bin/ruby

所以這絕對是個問題。 我自己並不主動使用Ruby(這只是我試圖運行的構建系統腳本的依賴項)所以我不關心哪個版本是活動的用於其他目的。 由於rubygems期望已經由RVM管理的1.9.2,我只是使用RVM來切換系統以使用1.9.2版本作為默認值:

> rvm use 1.9.2
Using /Users/Brian/.rvm/gems/ruby-1.9.2-p290

> ruby -v
ruby 1.9.2p290 (2011-07-09 revision 32553) [x86_64-darwin11.3.0]

在這樣做后,我的“沒有這樣的文件”問題消失了,我的腳本開始工作了。

我想補充說,在我的情況下沒有安裝rubygems

運行sudo apt-get install rubygems解決了這個問題!

嘗試啟動項目:

./script/server

如果你使用ruby 1.9.2而不是script/server (從升級到ruby 1.9.2后奇怪的無法要求配置/啟動

如果其他人正在搜索這個問題:我能夠通過找到我想要使用的難以捉摸的“rubygems”文件夾並將其添加到我的$ RUBYLIB環境變量來修復我的問題。

find / -name "rubygems" -print

找到后,將父目錄添加到您的環境中。 在bash中,像這樣:

export RUBYLIB=/path/to/parent

現在,如果你運行gem,它應該選擇正確的庫目錄,然后你就可以運行了。

我遇到了類似的問題並通過設置RUBYLIB env解決了這個問題。

在我的環境中我使用了這個:

export RUBYLIB=$ruby_dir/lib/ruby/1.9.1/:$ruby_dir/lib/ruby/1.9.1/i686-linux/:$RUBYLIB

我有一個類似的問題,只是運行一個簡單的ruby腳本,只需要我想要的寶石......得到了錯誤信息。 當我改變咒語時:

ruby test.rb

ruby -rubygems test.rb

似乎工作。

我也有這個問題。 我的解決方案是刪除文件Gemfile.lock,然后再次安裝gems:bundle install

gem install bundler

為我解決了這個問題。

這是Google搜索'require': cannot load such file -- ubygems (LoadError)時的第一個答案'require': cannot load such file -- ubygems (LoadError)在Google自動修正“ubygems”到“rubygems”之后'require': cannot load such file -- ubygems (LoadError) 事實證明這是Ruby 2.4和2.5之間的故意改變( Bug#14322 )。 檢測用戶gems目錄而不考慮ruby版本的腳本很可能會失敗。

Ruby 2.4

ruby -rubygems -e 'puts Gem.user_dir'

Ruby 2.5

ruby -rrubygems -e 'puts Gem.user_dir'

如果你安裝了幾個ruby,只需刪除其中一個就足夠了,在MacosX上添加額外端口安裝,刪除ports ruby​​安裝:

sudo port -f uninstall ruby

我也使用rbenv + passenger + nginx遇到了同樣的問題。 我的解決方案只是將這兩行代碼添加到你的nginx配置中:

passenger_default_user root;
passenger_default_group root;

詳細答案如下: https//stackoverflow.com/a/15777738/445908

簡單地運行/bin/bash --login對我來說很奇怪。 無法解釋。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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