我在Raspberry Pi 3 / Raspbian上运行Ruby on Rails(可能不是一个好主意),虽然我很少遇到任何问题。但是,当我从SQLite切换到我的数据库的PostgreSQL时,我得到了这个奇怪的错误消息,我无法解决这个问题。我使用生成我的应用程序的rails new myapp --database=postgresql
创建了一个新的Rails应用程序。然后我继续发布rails db:setup
,这是我遇到问题的地方。我使用rails db:setup &> error_message.txt
将错误消息捕获到文本文件中,这会创建一个冗长的文件。前两行可能是最有趣的:
/usr/local/lib/ruby/gems/2.5.0/gems/bootsnap-1.3.0/lib/bootsnap/compile_cache/iseq.rb:18: [BUG] Bus Error at 0x00aaa33b
ruby 2.5.1p57 (2018-03-29 revision 63029) [armv7l-linux-eabihf]
我的问题基本上是: Ruby on Rails与ARM架构不兼容吗?
更新1:我能够通过在require 'bootsnap/setup'
下注释掉config/boot.rb
来解决此错误,但之后我遇到了此错误:
** Invoke db:setup (first_time)
** Invoke db:schema:load_if_ruby (first_time)
** Invoke db:create (first_time)
** Invoke db:load_config (first_time)
** Invoke environment (first_time)
** Execute environment
/usr/local/lib/ruby/gems/2.5.0/gems/rb-inotify-0.9.10/lib/rb-inotify/notifier.rb:54: [BUG] Segmentation fault at 0x00000023
ruby 2.5.1p57 (2018-03-29 revision 63029) [armv7l-linux-eabihf]
更新2:我决定在Debian 9上设置我的开发环境(在x86架构上执行),而不是我的Raspbian(ARM架构)。我现在可以确认Ruby on Rails执行上述命令而不会产生任何错误。
答案 0 :(得分:1)
Helo Mihkel,
我有RPi 2而且我没有用作开发机器,因为这些类型的板适用于物联网。我不知道您的操作系统是什么,但我强烈建议您将开发环境更改为Docker或Vagrant。
无论如何,让我们来看看这个错误
当我谷歌时,我找到了这些解决方案
所以,似乎SD问题或更新。 (如果你解决了,请告诉我)
谢谢。
答案 1 :(得分:1)
我找到了最后一个错误的解决方案 - 你必须禁用Spring
要执行此操作,请转到您的主页/用户名文件夹,然后键入ls -a
在那里你看到一个名为.bashrc
打开此文件:
$nano .bashrc
在底部,您可以添加以下行:
export DISABLE_SPRING=true
保存并退出文件,
然后输入命令行以激活它:
$source ~/.bashrc