我在Mac上更新了XCode,从那时起使用Docker时出现了docker-sync-stack start以下错误消息:
mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/include/ruby.h
Run Code Online (Sandbox Code Playgroud)
我尝试用这个安装ruby:brew install rbenv ruby-build但这并没有改变任何东西.
有谁知道我怎么解决它?
谢谢!
rya*_*uen 59
没有其他解决方案对我有用,这是我为了解决Mac OS 10.14.x上的问题而执行的操作:
sudo rm -rf /Library/Developer/CommandLineTools
xcode-select --install
sudo xcodebuild -license accept
open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
Run Code Online (Sandbox Code Playgroud)
tad*_*man 36
升级XCode时,您需要安装命令行工具并另外接受条款和条件:
sudo xcode-select --install
Run Code Online (Sandbox Code Playgroud)
然后:
sudo xcodebuild -license
Run Code Online (Sandbox Code Playgroud)
bdo*_*man 14
从Xcode 11开始,似乎不再包含ruby开发标头,因此您需要在Xcode Command Line Tools外部手动安装它们。
例如,我使用rbenv
rbenv install 2.6.4
rbenv global 2.6.4
eval "$(rbenv init -)"
Run Code Online (Sandbox Code Playgroud)
然后运行捆绑安装,一切按预期进行。
小智 14
对于Xcode 11,我也通过安装/Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg软件包来解决此问题。
Sud*_*Plz 10
单行命令修复:
在OSX Mojave上,我运行了以下命令:
sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /
Run Code Online (Sandbox Code Playgroud)
它解决了这个问题。
For Xcode 11 on macOS 10.14, this can happen even after installing Xcode and installing command-line tools and accepting the license with
sudo xcode-select --install
sudo xcodebuild -license accept
Run Code Online (Sandbox Code Playgroud)
The issue is that Xcode 11 ships the macOS 10.15 SDK which includes headers for ruby2.6, but not for macOS 10.14's ruby2.3. You can verify that this is your problem by running
ruby -rrbconfig -e 'puts RbConfig::CONFIG["rubyhdrdir"]'
Run Code Online (Sandbox Code Playgroud)
which on macOS 10.14 with Xcode 11 prints the non-existent path
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/include/ruby-2.3.0
Run Code Online (Sandbox Code Playgroud)
However, Xcode 11 installs a macOS 10.14 SDK within /Library/Developer/CommandLineTools/SDKs/MacOS10.14.sdk. It isn't necessary to pollute the system directories by installing the old header files as suggested in other answers. Instead, by selecting that SDK, the appropriate ruby2.3 headers will be found:
sudo xcode-select --switch /Library/Developer/CommandLineTools
ruby -rrbconfig -e 'puts RbConfig::CONFIG["rubyhdrdir"]'
Run Code Online (Sandbox Code Playgroud)
This should now correctly print
/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/include/ruby-2.3.0
Run Code Online (Sandbox Code Playgroud)
Likewise, gem install should work while that SDK is selected.
To switch back to using the current Xcode 11 SDK, use
sudo xcode-select --switch /Applications/Xcode.app
Run Code Online (Sandbox Code Playgroud)
安装fastlane时遇到相同的问题。Tadman的答案是正确的,但命令行对Xcode 10.2.1不适用于我(我不确定其他版本)。您需要打开Xcode,然后打开“首选项”,选择“位置”,然后选择“命令行工具”。就我而言,“命令行工具”字段为空。
正如@bdorfman在评论中所说,从Xcode 11版本开始,不再包含Ruby标头,但他们似乎试图为此尽快建立一个新版本(?):https : //discuss.circleci.com/ t / xcode-11-gm-seed-2-released / 32505/12。
对我有用的是rbenv像@bdorfman所说的那样使用:
rbenv install 2.6.4
rbenv global 2.6.4
eval "$(rbenv init -)"
Run Code Online (Sandbox Code Playgroud)
但是,添加docker-sync新的红宝石版本需要额外的步骤。由于更改红宝石版本后(例如)
$ ruby -v
ruby 2.6.4p104 (2019-08-28 revision 67798) [x86_64-darwin18]
Run Code Online (Sandbox Code Playgroud)
然后运行gem列表:
$ gem list
bigdecimal (default: 1.4.1)
bundler (default: 1.17.2)
cmath (default: 1.0.0)
csv (default: 3.0.9)
date (default: 2.0.0)
dbm (default: 1.0.0)
did_you_mean (1.3.0)
e2mmap (default: 0.1.0)
etc (default: 1.0.1)
fcntl (default: 1.0.0)
fiddle (default: 1.0.0)
fileutils (default: 1.1.0)
forwardable (default: 1.2.0)
io-console (default: 0.4.7)
ipaddr (default: 1.2.2)
irb (default: 1.0.0)
json (default: 2.1.0)
logger (default: 1.3.0)
matrix (default: 0.1.0)
minitest (5.11.3)
mutex_m (default: 0.1.0)
net-telnet (0.2.0)
openssl (default: 2.1.2)
ostruct (default: 0.1.0)
power_assert (1.1.3)
prime (default: 0.1.0)
psych (default: 3.1.0)
rake (12.3.2)
rdoc (default: 6.1.2)
rexml (default: 3.1.9)
rss (default: 0.2.7)
scanf (default: 1.0.0)
sdbm (default: 1.0.0)
shell (default: 0.7)
stringio (default: 0.0.2)
strscan (default: 1.0.0)
sync (default: 0.5.0)
test-unit (3.2.9)
thwait (default: 0.1.0)
tracer (default: 0.1.0)
webrick (default: 1.4.2)
xmlrpc (0.3.0)
zlib (default: 1.0.0)
Run Code Online (Sandbox Code Playgroud)
(不包含docker-sync)
如果为docker-sync运行gem install,则将docker-sync用于rbenv托管的ruby。
$ gem install docker-sync
| 归档时间: |
|
| 查看次数: |
11773 次 |
| 最近记录: |