2015-10-19 116 views
0

我想安裝一個rails項目,我必須使用rake db:create命令來創建數據庫。但是在使用該命令引起分段錯誤的錯誤與此錯誤:Ubuntu Rake命令導致分段錯誤

/home/steven/.rvm/gems/ruby-2.2.1/gems/json-1.8.3/lib/json/ext/parser.so: [BUG] Segmentation fault 
ruby 1.9.3p484 (2013-11-22 revision 43786) [x86_64-linux] 

然而,當我運行命令bin/rake db:create我沒有得到一個分段錯誤。我已經搜索了一下,找不到原因,有誰知道這個問題的原因是什麼?這是一個嚴重的問題嗎?

經過進一步測試,這似乎是rake命令的問題。仍然不確定是什麼導致了這一點。

編輯 運行which -a rake命令給出

/home/steven/.rvm/gems/ruby-2.2.1/bin/rake 
/home/steven/.rvm/rubies/ruby-2.2.1/bin/rake 
/usr/local/bin/rake 

運行which ruby

/home/steven/.rvm/rubies/ruby-2.2.1/bin/ruby 

回答

1

編輯:這個頁面看起來像它的答案是:你需要重新加載/重新紅寶石。

Issue with json 1.8.1 gem in rails app on production

 

從你在前面已經說了,我可以看到你正在使用RVM。它看起來像默認rake的gemset是ruby-2.2.1,但是有一個涉及ruby 1.9.3p484的錯誤。這是一個問題

讓我們假設你想爲你的項目使用紅寶石1.9.3p484。從項目目錄運行rvm use 1.9.3p484,它應該切換PATH變量來設置正確的值。

要詳細瞭解該前角可執行文件正在使用,以及什麼是可用的,和目錄的Ubuntu的搜索耙可執行的命令,你可以使用

  • which -a rake - >列出所有可能的耙可執行文件在你的PATH
  • echo $PATH - >顯示PATH變量,裏面有所有的目錄搜索的Ubuntu
  • which rake - >顯示默認使用耙

現在,原因bin/rake db:create的作品是因爲它是正確的紅寶石版本。要設置正確的事情,您需要執行rvm use命令。

對我來說,當我cd到rails目錄時,正確的rvm gemset會自動切換到。我忘了它是如何在Ubuntu上工作的,但我知道一個線索:你需要在登錄shell中。您可以鍵入su - steven切換到登錄shell,但在Gnome Terminal首選項中,可能有一些關於確保您處於登錄shell的信息。

如果你已經在登錄shell,但它不工作,你還可以添加

export PATH=/home/steven/.rvm/rubies/ruby-1.9.3p484/bin:$PATH

/home/steven/.bashrc和/或/home/steven/.bash_profile文件(我永遠記得它)。

有很多原因可能導致這種情況無法正常工作,因此請隨時對更多詳細信息發表評論或更新您的問題,我會看看我是否可以提供更多的建議。 - 列表項目

+0

感謝您的回覆,但是我沒有使用RVM安裝Ruby 1.9.3。所以我不明白爲什麼錯誤引用了1.9.3。重新安裝紅寶石是否解決了這個問題?如果是這樣,你知道這樣做的命令嗎? – Steven

+0

@Steven除非你編輯你的答案,包括'which -a rake'和'ruby'的輸出,否則回答其他任何事情都太難了。 –

+0

我已經添加了這兩個命令的輸出。 – Steven