我是rails新手,昨天我正在使用Ubuntu 19.10,我决定将我的操作系统升级到新版本,升级完成后一切都很顺利,在我开始使用我的计算机进行开发时发现任何rails命令不起作用并且向我展示了这个错误
在`require'中:libffi.so.6:无法打开共享对象文件:没有这样的文件或目录 - /home/ace/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/ ffi-1.13.1/lib/ffi_c.so(加载错误)
我发现有人有同样的问题,但他们都没有在 Rails 中遇到问题,而且他们中的任何一个对我都有用。
我认为问题出在 libffi.so.6 软件包上,因为我的操作系统上安装了 ffi-1.13.1
Ubuntu 20.04 将 libffi6 升级到 libffi7,但您的 Rails 应用程序仍在寻找 libffi6。 您需要运行以下命令:
gem pristine ffi
这应该可以解决问题
gem pristine ffi
对我没有帮助。更具侵略性
gem uninstall ffi
gem install ffi
完成了工作。
将
gem "ffi", github: "ffi/ffi"
添加到我的 Gemfile
修复了它
当您切换红宝石时需要重建。
令人烦恼的是,即使安装了并且您也尝试使用
byebug
调试器,它似乎也无法显示此消息。 (即使以其他方式安装了 ffi 二进制文件,它也会为我执行此操作 - 并且取出 byebug
调试器不会陷入此 ffi 错误)
使用
ruby/debug
似乎有效
我的错误是
libffi 8
于 ubuntu 20.04
为 rails 6.1.4
https://github.com/ffi/ffi#requirements解决了我的问题
--enable-system-libffi : Force usage of system libffi
--disable-system-libffi : Force usage of builtin libffi
--enable-libffi-alloc : Force closure allocation by libffi
--disable-libffi-alloc : Force closure allocation by builtin method
我在这里遇到了同样的问题:https://github.com/ffi/ffi/issues/947#issuecomment-1089299217
首先卸载gem:
gem uninstall ffi
然后重新安装它:
gem install ffi -- --disable-system-libffi
这对我有帮助:
bundle install