ruby 即使gem install ffi成功,bundle install也会因ff1 gem而失败

waxmsbnn  于 2023-08-04  发布在  Ruby
关注(0)|答案(1)|浏览(127)

我的脚步

1.已安装rbenv -安装成功rbenv install 3.1.2
1.已安装bundler gem -成功gem install bundler
1.运行bundle install命令-* 失败 * bundle install

输出:

Fetching gem metadata from https://rubygems.org/.........
Using public_suffix 4.0.6
Using addressable 2.8.0
Using aws-sigv4 1.0.0
Using jmespath 1.3.1
Using aws-sdk-core 2.7.15
Using aws-sdk-resources 2.7.15
Using aws-sdk 2.7.15
Using bundler 1.17.2
Using colorator 1.1.0
Using colored 1.2
Using deep_merge 1.0.1
Using configure-s3-website 2.0.0
Using dotenv 1.0.2
Fetching ffi 1.15.4
Installing ffi 1.15.4 with native extensions
Errno::EPERM: Operation not permitted @ apply2files - /Users/sucm/Development/Projects/dots-ruby3/dots.co/vendor/bundle/ruby/2.6.0/gems/ffi-1.15.4/CHANGELOG.md
An error occurred while installing ffi (1.15.4), and Bundler cannot continue.
Make sure that `gem install ffi -v '1.15.4' --source 'https://rubygems.org/'` succeeds before bundling.

In Gemfile:
  jekyll was resolved to 3.6.3, which depends on
    jekyll-sass-converter was resolved to 1.5.2, which depends on
      sass was resolved to 3.7.4, which depends on
        sass-listen was resolved to 4.0.0, which depends on
          rb-inotify was resolved to 0.10.1, which depends on
            ffi

字符串

我运行的其他命令。仍然无法通过bundle install步骤

  1. gem install ffi -v '1.15.4' --source 'https://rubygems.org/'//成功
  2. gem install ffi -- --with-cflags="-Wno-error=implicit-function-declaration"//成功
  3. bundle update ffi//失败,出现类似于上述的bundle安装错误
    bundle env命令的输出
sucm@11575A-SUCM dots.co % bundle env
/Users/sucm/.zshrc:8: no such file or directory: /Users/sucm/.rbenv/bin/rbenv
zsh:1: command not found: chruby

Saving session...
...saving history...truncating history files...
...completed.
## Environment


Bundler 1.17.2平台ruby,universal-darwin-21 Ruby 2.6.8p205(2021-07-07 revision 67951)[universal.完整路径/系统/库/框架/Ruby。framework/Versions/2.6/usr/bin/ruby Config Dir /Library/Ruby/Site RubyGems 3.0.3.1 Gem Home /Library/Ruby/Gems/2.6.0 Gem Path /Users/sucm/.gem/ruby/2.6.0:/Library/Ruby/Gems/2.6.0:/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/gems/2.6.0 User Path /Users/sucm/.gem/ruby/2.6.0 Bin Dir /usr/local/bin工具
Git 2.37.1(Apple Git-137.1)RVM not installed rbenv rbenv 1.2.0 chruby已恢复会话:2022年11月24日星期四16:28:32 IST

## Bundler Build Metadata


构建于2018-12-19 Git SHA 3fc 4de 72 b发布版本false

## Bundler settings


build.ffi为本地应用设置(/Users/sucm/Development/Projects/dots-ruby 3/dots.co/.bundle/config):“--with-cflags=-Wno-error=implicit-function-declaration”为当前用户设置(/Users/sucm/.bundle/config):“--with-cflags=-Wno-error=implicit-function-declaration”path为本地应用设置(/Users/sucm/Development/Projects/dots-ruby 3/dots.co/.bundle/config):“供应商/捆绑包”

## Gemfile

### Gemfile

```ruby
# frozen_string_literal: true
source 'https://rubygems.org'

gem 'jekyll'
gem 's3_website'

Gemfile.lock

GEM
  remote: https://rubygems.org/
  specs:
    addressable (2.8.0)
      public_suffix (>= 2.0.2, < 5.0)
    aws-sdk (2.7.15)
      aws-sdk-resources (= 2.7.15)
    aws-sdk-core (2.7.15)
      aws-sigv4 (~> 1.0)
      jmespath (~> 1.0)
    aws-sdk-resources (2.7.15)
      aws-sdk-core (= 2.7.15)
    aws-sigv4 (1.0.0)
    colorator (1.1.0)
    colored (1.2)
    configure-s3-website (2.0.0)
      aws-sdk (~> 2)
      deep_merge (~> 1.0.0)
    deep_merge (1.0.1)
    dotenv (1.0.2)
    ffi (1.15.4)
    forwardable-extended (2.6.0)
    jekyll (3.6.3)
      addressable (~> 2.4)
      colorator (~> 1.0)
      jekyll-sass-converter (~> 1.0)
      jekyll-watch (~> 1.1)
      kramdown (~> 1.14)
      liquid (~> 4.0)
      mercenary (~> 0.3.3)
      pathutil (~> 0.9)
      rouge (>= 1.7, < 3)
      safe_yaml (~> 1.0)
    jekyll-sass-converter (1.5.2)
      sass (~> 3.4)
    jekyll-watch (1.5.1)
      listen (~> 3.0)
    jmespath (1.3.1)
    kramdown (1.17.0)
    liquid (4.0.3)
    listen (3.7.0)
      rb-fsevent (~> 0.10, >= 0.10.3)
      rb-inotify (~> 0.9, >= 0.9.10)
    mercenary (0.3.6)
    pathutil (0.16.2)
      forwardable-extended (~> 2.6)
    public_suffix (4.0.6)
    rb-fsevent (0.11.0)
    rb-inotify (0.10.1)
      ffi (~> 1.0)
    rouge (2.2.1)
    s3_website (3.0.0)
      colored (= 1.2)
      configure-s3-website (= 2.0.0)
      dotenv (~> 1.0)
      thor (~> 0.18)
    safe_yaml (1.0.5)
    sass (3.7.4)
      sass-listen (~> 4.0.0)
    sass-listen (4.0.0)
      rb-fsevent (~> 0.9, >= 0.9.4)
      rb-inotify (~> 0.9, >= 0.9.7)
    thor (0.19.4)

PLATFORMS
  ruby

DEPENDENCIES
  jekyll
  s3_website

BUNDLED WITH
   1.14.5

ymzxtsji

ymzxtsji1#

我遇到了这个问题,最后通过强制使用内置的libffi版本找到了解决方案:

gem install ffi -- --disable-system-libffi
bundle config build.ffi --disable-system-libffi

字符串
参考:ffi/ffi: Ruby FFI
ffi gem附带了一个内置的libffi版本,当系统libffi库不可用或太旧时,可以使用该版本。使用系统libffi可以...被--disable-system-libffi阻止。

相关问题