Ich habe XCode auf meinem Mac aktualisiert und seitdem beim Starten von Docker mit wird folgende docker-sync-stack start
Fehlermeldung angezeigt:
mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/include/ruby.h
Ich habe versucht, Ruby damit zu installieren: brew install rbenv ruby-build
aber das ändert nichts.
Weiß jemand, wie ich das beheben kann?
Vielen Dank!
sudo xcode-select --install
Befehl besagt, dass ich bereits Befehlszeilentools installiert habe. Es wurde auch versucht, die Xcode 11-Befehlszeilentools manuell von den Entwickler-Downloads herunterzuladen. Aber ich bekomme immer noch den Fehlermkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/include/ruby.h
Antworten:
Für Xcode 11 unter macOS 10.14 kann dies auch nach der Installation von Xcode und der Installation von Befehlszeilentools und dem Akzeptieren der Lizenz mit geschehen
Das Problem ist, dass Xcode 11 das macOS 10.15 SDK liefert, das Header für ruby2.6 enthält, nicht jedoch für ruby2.3 von macOS 10.14. Sie können überprüfen, ob dies Ihr Problem ist, indem Sie ausführen
Unter MacOS 10.14 mit Xcode 11 wird der nicht vorhandene Pfad gedruckt
Xcode 11 installiert jedoch ein macOS 10.14 SDK
/Library/Developer/CommandLineTools/SDKs/MacOS10.14.sdk
. Es ist nicht erforderlich, die Systemverzeichnisse durch Installieren der alten Header-Dateien zu verschmutzen, wie in anderen Antworten vorgeschlagen. Wenn Sie stattdessen dieses SDK auswählen, werden die entsprechenden ruby2.3-Header gefunden:Dies sollte jetzt korrekt gedruckt werden
Ebenso
gem install
sollte funktionieren, während dieses SDK ausgewählt ist.Verwenden Sie, um wieder das aktuelle Xcode 11 SDK zu verwenden
quelle
$ xcrun --show-sdk-version
Geben Siexcodebuild: error: SDK "/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/" cannot be located. xcrun: error: unable to lookup item 'SDKVersion' in SDK '/Library/Developer/CommandLineTools/SDKs/MacOSX10.14.sdk/'
, ich benutze am Ende @bdorfmans Lösung vonrbenv
Keine der anderen Lösungen hat bei mir funktioniert. Ich habe Folgendes ausgeführt, um das Problem unter Mac OS 10.14.x zu beheben:
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
quelle
Wenn Sie XCode aktualisieren, müssen Sie die Befehlszeilentools installieren und zusätzlich die allgemeinen Geschäftsbedingungen akzeptieren:
Dann:
quelle
docker-sync start
, aufhören zu müssen, sich zu beschweren.Ab Xcode 11 scheinen die Ruby-Entwicklungsheader nicht mehr enthalten zu sein, sodass Sie sie manuell außerhalb der Xcode-Befehlszeilentools installieren müssen.
ZB für mich mit rbenv habe ich getan
rbenv install 2.6.4 rbenv global 2.6.4 eval "$(rbenv init -)"
Dann lief Bundle-Installation und alles funktionierte wie erwartet.
quelle
rbenv
ich durch Hinzufügen in meinem CI-Workflow große Verbesserungen erzielen konnte/System/Library/Frameworks/Ruby.framework/Versions/2.3/usr/lib/ruby/include
Verzeichnis, obwohl der Pfad bis "include" existiert./System/Library/Frameworks/Ruby.framework/Versions/2.3
, zeigt dies an, dass Ihre Umgebung immer noch das MacOS-System Ruby und nicht das Rbenv verwendet.Für Xcode 11 habe ich dies behoben, indem ich auch das
/Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
Paket installiert habe .quelle
xcode-select --install
und es sollte angezeigt werden. Sobald Sie das Paket unter diesem Pfad haben, erzwingen Sie die Installation wie folgtsudo installer -pkg macOS_SDK_headers_for_macOS_10.14.pkg -target /
(Ausführung von / Library / Developer / CommandLineTools / Packages)Einzeilige Befehlsbehebung:
Unter OSX Mojave habe ich den folgenden Befehl ausgeführt:
sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /
und es hat das Problem behoben.
quelle
-allowUntrusted
Flag hinzuzufügen . Aber dann ist es am Ende immer noch gescheitert. Die Fehlermeldung istinstaller: The install failed (The Installer encountered an error that caused the installation to fail. Contact the software manufacturer for assistance.)
Ich hatte das gleiche Problem bei der Installation von Fastlane. Die Antwort des Tadman ist korrekt, aber die Befehlszeilen funktionieren bei Xcode 10.2.1 nicht (bei anderen Versionen bin ich mir nicht sicher). Sie müssen Xcode öffnen, dann Einstellungen öffnen, Standorte auswählen und Befehlszeilentools auswählen. In meinem Fall ist das Feld Befehlszeilentools leer.
quelle
Wie @bdorfman in seinem Kommentar sagte, sind die Ruby-Header ab Xcode 11-Build nicht mehr enthalten, aber sie scheinen zu versuchen, so schnell wie möglich einen neuen Build dafür zu erstellen (?): Https://discuss.circleci.com/ t / xcode-11-g-seed-2-release / 32505/12 .
Was für mich funktionierte, war zu verwenden,
rbenv
wie @bdorfman sagte:rbenv install 2.6.4 rbenv global 2.6.4 eval "$(rbenv init -)"
Aber mit dem zusätzlichen Schritt
docker-sync
, Ihre neue Ruby-Version zu ergänzen. Da nach dem Ändern der Ruby-Version (zum Beispiel)$ ruby -v ruby 2.6.4p104 (2019-08-28 revision 67798) [x86_64-darwin18]
Und dann laufen Edelsteinliste:
$ 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)
(enthält keine Docker-Sync)
Wenn Sie die Gem-Installation für Docker-Sync ausführen, verwenden Sie die Docker-Synchronisierung für Ihren von rbenv verwalteten Ruby.
$ gem install docker-sync
quelle
Wenn Sie einen tieferen Einblick in das Problem erhalten möchten:
https://silvae86.github.io/sysadmin/mac/osx/mojave/beta/libxml2/2018/07/05/fixing-missing-headers-for-homebrew-in-mac-osx-mojave/
quelle
Durch Ausführen
open /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg
im Terminal wird der Paketinstallationsassistent geöffnet. Nach ordnungsgemäßer Installation konnte ich fortfahren.MacOS 10.4.4
quelle