libffi.so.6:无法在rails中打开共享对象文件



我是rails的新手,昨天我在Ubuntu 19.10上工作。我决定将我的操作系统升级到新版本。升级完成后一切都很好。我开始使用我的计算机进行开发,发现任何rails命令都不起作用,并向我显示了这个错误

in `require': libffi.so.6: cannot open shared object file: No such file or directory - /home/ace/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/gems/ffi-1.13.1/lib/ffi_c.so (LoadError)

我发现有人也有同样的问题,但他们中没有一个在铁轨上有问题,他们中的任何一个都对我有用。

我认为问题出在libffi.so.6包上,因为我的操作系统上安装了ffin-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修复了

  1. 当你切换红宝石时,它需要重建。

  2. 令人烦恼的是,即使在安装时,它似乎也会失败,并且您还尝试使用byebug调试器。(即使在安装了ffi二进制文件的情况下,它也能为我做到这一点——去掉byebug调试器不会陷入这个ffi错误(

使用ruby/debug似乎可以实现

我的错误是rails 6.1.4ubuntu 20.04上的libffi 8

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

以下是对我的帮助:

  1. 删除项目的供应商/缓存文件夹
  2. bundle install

相关内容

  • 没有找到相关文章

最新更新