我尝试在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
我收到以下错误:
错误:安装快车道时出错:
错误:无法构建 gem 本机扩展。
/usr/bin/ruby2.1 mkrf_conf.rb .
构建本机扩展。 这可能需要一段时间.../usr/lib/ruby/2.1.0/rubygems/ext/builder.rb:89:in 'run': 错误:无法构建 gem 本机扩展。(gem::ext::BuildError( ./
usr/bin/ruby2.1 extconf.rb .
mkmf.rb 在/
usr/lib/ruby/include/ruby.h 找不到 ruby 的头文件 扩展失败,退出代码 1
我该如何解决这个问题?
日志的其余部分
Gem 文件将保留安装在/var/lib/gems/2.1.0/gems/unf-0.2.0.beta2/ext/gems/gems/unf_ext-0.0.7.4 中以供检查。 结果记录到/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 来自/usr/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' 来自/usr/lib/ruby/2.1.0/rubygems/ext/builder.rb:161:in '块(2 个级别(在build_extension' 来自/usr/lib/ruby/2.1.0/rubygems/ext/builder.rb:160:in 'chdir' 来自/usr/lib/ruby/2.1.0/rubygems/ext/builder.rb:160:in 'block in build_extension' 来自/usr/lib/ruby/2.1.0/rubygems/ext/builder.rb:159:in 'sync' 来自/usr/lib/ruby/2.1.0/rubygems/ext/builder.rb:159:in 'build_extension' 来自/usr/lib/ruby/2.1.0/rubygems/ext/builder.rb:198:in 'block in build_extensions' 来自/usr/lib/ruby/2.1.0/rubygems/ext/builder.rb:195:in 'each' 来自/usr/lib/ruby/2.1.0/rubygems/ext/builder.rb:195:in 'build_extensions' 来自/usr/lib/ruby/2.1.0/rubygems/installer.rb:677:in 'build_extensions' 来自/usr/lib/ruby/2.1.0/rubygems/installer.rb:232:in 'install' 来自/usr/lib/ruby/2.1.0/rubygems/resolver/specification.rb:78:in 'install' 来自/usr/lib/ruby/2.1.0/rubygems/request_set.rb:206:in 'block in install_into' 来自/usr/lib/ruby/2.1.0/rubygems/request_set.rb:198:in 'each' 来自/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' 从 mkrf_conf.rb:15:in '' 前置失败,退出代码 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
将脚本更改为:
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
我们的建议(事实证明,快车道(是使用bundler和Gemfile来实现这一点。它允许您使用特定版本的快车道,并且作为奖励,不需要 sudo。
让我知道这是否有帮助!