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

问题描述 投票:0回答:7

我是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

ruby-on-rails ubuntu package
7个回答
14
投票

Ubuntu 20.04 将 libffi6 升级到 libffi7,但您的 Rails 应用程序仍在寻找 libffi6。 您需要运行以下命令:

gem pristine ffi

这应该可以解决问题


5
投票

gem pristine ffi
对我没有帮助。更具侵略性

gem uninstall ffi
gem install ffi

完成了工作。


1
投票

gem "ffi", github: "ffi/ffi"
添加到我的
Gemfile
修复了它


0
投票
  1. 当您切换红宝石时需要重建。

  2. 令人烦恼的是,即使安装了并且您也尝试使用

    byebug
    调试器,它似乎也无法显示此消息。 (即使以其他方式安装了 ffi 二进制文件,它也会为我执行此操作 - 并且取出
    byebug
    调试器不会陷入此 ffi 错误)

使用

ruby/debug
似乎有效


0
投票

我的错误是

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

0
投票

我在这里遇到了同样的问题:https://github.com/ffi/ffi/issues/947#issuecomment-1089299217

首先卸载gem:

gem uninstall ffi

然后重新安装它:

gem install ffi -- --disable-system-libffi


-1
投票

这对我有帮助:

  1. 删除项目的供应商/缓存文件夹
  2. bundle install
© www.soinside.com 2019 - 2024. All rights reserved.