美文网首页延后2
初识Flutter(三)Flutter下macOS下配置环境避坑

初识Flutter(三)Flutter下macOS下配置环境避坑

作者: 不思进取的码农 | 来源:发表于2021-12-04 18:09 被阅读0次

    一句话总结:新Mac 不要直接用系统再带的ruby安装cocoapods,自己动手装一个ruby,然后再安装cocoapods。

    RROR:  Error installing cocoapods:
        ERROR: Failed to build gem native extension.
    

    如果你已经遇到这个错误了 直接重装ruby避免再走弯路

    安装新的ruby,安装homebrew,使用如下命令

    /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    

    遇到报错:

    curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused
    

    此时需要修改hosts:

    添加以下内容(到https://www.ipaddress.com/查看,raw.githubusercontent.com对应的ip地址)

    99.232.28.133 raw.githubusercontent.com
    

    原帖参考

    修改完成,再执行安装命令:

    /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    

    过程有点慢,安装Homebrew完成后查看一下版本:

    brew -v
    

    得到结果:

    Homebrew 2.7.0
    

    说明革命第一步成功了。

    接着安装RVM,RVM是rubyh环境管理工具,这里使用命令:

    curl -L https://get.rvm.io | bash -s stable
    

    很好,很顺利。载入rvm环境,命令:

    source ~/.rvm/scripts/rvm
    

    再来查看一下ruby已知版本,命令:

    rvm list known
    

    根据结果,挑选一个你想安装的ruby版本,我装的2.6.6,命令:

    rvm install 2.6.6
    

    这里我遇到了问题,如果没有遇到该问题可以直接跳过下面这一步
    遇到的问题 报错内容如下:

    nstalling requirements for osx.
    Updating system.....
    Installing required packages: autoconf, automake, libtool, pkg-config, libyaml, readline, libksba, openssl|
    ........
    Error running 'requirements_osx_brew_libs_install autoconf automake libtool pkg-config libyaml readline libksba openssl**',
    showing last 15 lines of /Users/MTKJ/.rvm/log/1469285314_ruby-2.3.0/package_install_autoconf_automake_libtool_pkg-config_libyaml_readline_libksba_openssl.log
    

    看错误提示 因为缺少autoconf automake libtool pkg-config libyaml readline libksba openssl这些库,
    所以用homebrew挨个去安装这些库

    brew install autoconf
    brew install automake
    brew install lib tool
    brew install apple-gcc42
    brew install libyaml
    brew install libxslt
    brew install libksba
    brew install openssl
    

    可能你的电脑缺少的库跟我的不一样,按照日志提示的去安装就好了

    最后,都安装好后,再执行rvm install 2.6.6

    如果没有上面问题,只是过程也有点慢,其余也很顺利的话,说明离革命胜利已经不远了。关掉终端,重开查一下ruby的版本,命令:

    ruby -v
    

    看一下是不是刚刚下载的版本 如果不是执行

    rvm use ruby-2.6.6
    

    然后执行

    sudo gem install cocoapods
    

    更新下载cocoapods

    此时又需要一波等待,完成后查看版本:

    pod --version
    

    成功返回版本号:

    1.11.2
    

    至此,踩坑结束,安装完成。后面不用再看,贴一下报错信息,便于搜索而已

    current directory: /Library/Ruby/Gems/2.6.0/gems/ffi-1.14.2/ext/ffi_c
    /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/ruby -I /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0 -r ./siteconf20201226-5110-w2ijvp.rb extconf.rb
    checking for ffi.h... *** extconf.rb failed ***
    Could not create Makefile due to some reason, probably lack of necessary
    libraries and/or headers.  Check the mkmf.log file for more details.  You may
    need configuration options.
    Provided configuration options:
        --with-opt-dir
        --without-opt-dir
        --with-opt-include
        --without-opt-include=${opt-dir}/include
        --with-opt-lib
        --without-opt-lib=${opt-dir}/lib
        --with-make-prog
        --without-make-prog
        --srcdir=.
        --curdir
        --ruby=/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/$(RUBY_BASE_NAME)
        --with-ffi_c-dir
        --without-ffi_c-dir
        --with-ffi_c-include
        --without-ffi_c-include=${ffi_c-dir}/include
        --with-ffi_c-lib
        --without-ffi_c-lib=${ffi_c-dir}/lib
        --enable-system-libffi
        --disable-system-libffi
        --with-libffi-config
        --without-libffi-config
        --with-pkg-config
        --without-pkg-config
    /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:467:in `try_do': The compiler failed to generate an executable file. (RuntimeError)
    You have to install development tools first.
        from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:585:in `block in try_compile'
        from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:534:in `with_werror'
        from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:585:in `try_compile'
        from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:1109:in `block in have_header'
        from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:959:in `block in checking_for'
        from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:361:in `block (2 levels) in postpone'
        from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:331:in `open'
        from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:361:in `block in postpone'
        from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:331:in `open'
        from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:357:in `postpone'
        from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:958:in `checking_for'
        from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/mkmf.rb:1108:in `have_header'
        from extconf.rb:10:in `system_libffi_usable?'
        from extconf.rb:42:in `<main>'
    To see why this extension failed to compile, please check the mkmf.log which can be found here:
    
      /Library/Ruby/Gems/2.6.0/extensions/universal-darwin-19/2.6.0/ffi-1.14.2/mkmf.log
    
    extconf failed, exit code 1
    
    Gem files will remain installed in /Library/Ruby/Gems/2.6.0/gems/ffi-1.14.2 for inspection.
    Results logged to /Library/Ruby/Gems/2.6.0/extensions/universal-darwin-19/2.6.0/ffi-1.14.2/gem_make.out
    
    

    相关文章

      网友评论

        本文标题:初识Flutter(三)Flutter下macOS下配置环境避坑

        本文链接:https://www.haomeiwen.com/subject/rrbhxrtx.html