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

libffi.so.6: cannot open shared object file in rails

我是 rails 的新手,昨天我正在 Ubuntu 19.10 上工作 我决定将我的 OS 升级到新版本 升级完成后一切正常我开始使用我的计算机进行开发时发现任何 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)

我发现有人有同样的问题,但 none 人在 rails 方面有问题,他们中的任何一个对我都有用。

我认为问题出在 libffi.so.6 包上,因为我的 OS

上安装了 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 修复了它

  1. 切换红宝石时需要重建。

  2. 烦人的是,即使安装了它似乎也无法进入此消息并且您还尝试使用 byebug 调试器。 (即使以其他方式安装了 ffi 二进制文件,它也会为我执行此操作——并且删除 byebug 调试器不会陷入此 ffi 错误)

使用 ruby/debug 似乎有效

以下是对我有帮助的内容:

  1. 删除项目的 vendor/cache 文件夹
  2. bundle install

我的错误是 libffi 8 ubuntu 20.04 for 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