0

我尝试在 Buddybuild 的预构建步骤中安装 Fastlane。

我的预构建脚本如下所示:

#!/bin/bash
if ! which fastlane >/dev/null; then
   echo "Installing fastlane this may need sudo"
   sudo gem install fastlane
else
   echo "Updating fastlane this may need sudo"
   sudo gem update fastlane
fi

我收到以下错误:

错误:安装 fastlane 时出错:
错误:无法构建 gem 原生扩展。
/usr/bin/ruby2.1 mkrf_conf.rb 。
构建原生扩展。这可能需要一段时间... /usr/lib/ruby/2.1.0/rubygems/ext/builder.rb:89:in `run': ERROR: Failed to build gem native extension. (Gem::Ext::BuildError) 。
/usr/bin/ruby2.1 extconf.rb 。
mkmf.rb 在 /usr/lib/ruby/include/ruby.h 找不到 ruby​​ 的头文件
extconf 失败,退出代码 1

我该如何解决这个问题?

日志的其余部分

Gem 文件将继续安装在 /var/lib/gems/2.1.0/gems/unf-0.2.0.beta2/ext/gems/gems/unf_ext-0.0.7.4 以供检查。结果从 /usr 记录到 /var/lib/gems/2.1.0/gems/unf-0.2.0.beta2/ext/gems/extensions/x86_64-linux/2.1.0/unf_ext-0.0.7.4/gem_make.out /lib/ruby/2.1.0/rubygems/ext/ext_conf_builder.rb:38:in 块从 /usr/lib/ruby/2.1.0/tempfile.rb:324:in 'open' 来自 /usr/lib /ruby/2.1.0/rubygems/ext/ext_conf_builder.rb:17:in 'build' from /usr/lib/ruby/2.1.0/rubygems/ext/builder.rb:161:in 'block (2 个级别)在 /usr/lib/ruby/2.1.0/rubygems/ext/builder.rb:160 的 build_extension' 中:在 /usr/lib/ruby/2.1.0/rubygems/ext/builder.rb:160 的 'chdir' 中:在 /usr/lib/ruby/2.1.0/rubygems/ext/builder.rb:159 中的“block in build_extension”中:来自 /usr/lib/ruby/2.1.0/rubygems/request_set.rb:198:in 'install_into' 来自 /usr/lib/ruby/2.1.0/rubygems/request_set.rb:119:in 'install' 来自 / usr/lib/ruby/2.1.0/rubygems/dependency_installer.rb:389:in 'install' from mkrf_conf.rb:15:in '' rake 失败,退出代码 1 Gem 文件将继续安装在 /var/lib/gems /2.1.0/gems/unf-0.2.0.beta2 供检查。结果记录到 /var/lib/gems/2.1.0/extensions/x86_64-linux/2.1.0/unf-0.2.0.beta2/gem_make.out 退出代码 1 Gem 文件将继续安装在 /var/lib/gems/2.1.0/gems/unf-0.2.0.beta2 中以供检查。结果记录到 /var/lib/gems/2.1.0/extensions/x86_64-linux/2.1.0/unf-0.2.0.beta2/gem_make.out 退出代码 1 Gem 文件将继续安装在 /var/lib/gems/2.1.0/gems/unf-0.2.0.beta2 中以供检查。结果记录到 /var/lib/gems/2.1.0/extensions/x86_64-linux/2.1.0/unf-0.2.0.beta2/gem_make.out

4

2 回答 2

0

将您的脚本更改为:

 if ! which fastlane >/dev/null; then
    echo "Installing fastlane..."
    echo password | sudo -S gem install fastlane
else
    echo "Updating fastlane..."
    echo password | sudo -S gem update fastlane
fi
于 2017-08-16T06:34:48.233 回答
0

我们的建议(事实证明,fastlane 的)是使用 bundler 和 Gemfile 来实现这一点。它允许您使用特定版本的 fastlane,并且作为奖励,不需要 sudo。

让我知道这是否有帮助!

于 2017-11-09T17:10:51.343 回答