Wie aktualisiere ich Ruby in Google SketchUp für Mac?

1456
Andrei

Derzeit hat Google SketchUp für Mac eine Ruby-Version, 1.8.5die ich etwas veraltet finde. Ich kann Ruby mit den folgenden Befehlen auf 1.8.7 (OSX-Version) aktualisieren

$ cd /Applications/Google\ SketchUp\ 7/SketchUp.app/Contents/Frameworks/Ruby.framework/Versions/Current $ ls Headers/ Resources/ Ruby $ ls Headers/ config.h defines.h intern.h missing.h ruby.h  $ rm -r Headers $ ln -s /System/Library/Frameworks/Ruby.framework/Headers $ ln -fs /System/Library/Frameworks/Ruby.framework/Ruby 

SketchUp startet problemlos und Ruby Console zeigt Version 1.8.7.

1.9.2

Jetzt versuche ich weiter zu gehen und ein Update durchzuführen 1.9.2-rc2. Google SketchUp erfordert eine i386Binärdatei, die mit den folgenden Befehlen erzeugt werden kann

$ cd ~/ruby-1.9.2-rc2/ $ ARCHFLAGS="-arch i386" CFLAGS="-arch i386" LDFLAGS="-arch i386" ./configure --with-arch=i386 $ make && sudo make install 

Dann kopiere ich notwendige Dateien nach SketchUp

$ cd /Applications/Google\ SketchUp\ 7/SketchUp.app/Contents/Frameworks/Ruby.framework/ $ rm Headers Ruby  $ cp /usr/local/bin/ruby Ruby $ mkdir Headers $ cp /usr/local/include/ruby-1.9.1/i386-darwin10.4.0/ruby/config.h Headers/ $ cp /usr/local/include/ruby-1.9.1/ruby.h Headers/ $ cp -r /usr/local/include/ruby-1.9.1/ruby/* Headers/ $ ls Headers backward/ defines.h dl.h intern.h missing.h re.h ruby.h util.h vm.h config.h digest.h encoding.h io.h oniguruma.h regex.h st.h version.h 

Wenn ich versuche, SketchUp zu starten, erhalte ich den folgenden Fehlerbericht

Exception Type: EXC_BREAKPOINT (SIGTRAP)  Dyld Error Message: Library not loaded: @executable_path/../Frameworks/Ruby.framework/Versions/A/Ruby Referenced from: /Applications/Google SketchUp 7/SketchUp.app/Contents/MacOS/SketchUp Reason: no suitable image found. Did find: /Applications/Google SketchUp 7/SketchUp.app/Contents/MacOS/../Frameworks/Ruby.framework/Versions/A/Ruby: can't map /Applications/Google SketchUp 7/SketchUp.app/Contents/MacOS/../Frameworks/Ruby.framework/Versions/A/Ruby: can't map /usr/local/lib/Ruby: not a file /usr/lib/Ruby: not a file  Model: MacBookPro7,1, BootROM MBP71.0039.B05, 2 processors, Intel Core 2 Duo, 2.4 GHz, 4 GB, SMC 1.62f5 

Kannst du mir sagen warum?

UPDATE1

Dan Rathbun hat ein paar Tests gemacht und folgendes gefunden

Als ich unter Win32 versuchte, Sketchup zum Laden von 1.9.x zu veranlassen, erhielt ich einen "Einstiegspunkt nicht gefunden" für die Ruby-C-Funktion "rb_set_kcode", die nicht mehr in 1.9.x enthalten ist (es wurde umbenannt, und die Ruby-Leute nicht.) Alias ​​der alte Name auf den neuen Namen.)

Grundsätzlich ruft Sketchup rb_set_kcode auf, um die Zeichenkodierung unmittelbar nach dem Laden des Ruby-Interpreters auf UTF8 zu setzen. Es funktioniert gut für jeden Ruby im 1.8.x-Zweig, aber in 1.9.x hat das Ruby-Projekt die Zeichencodierung komplett überarbeitet und alle C-Funktionen mit neuen Bezeichnern versehen und eine Menge weiterer Funktionen hinzugefügt.

Die Lösung für 1.9.x und Sketchup scheint zu sein, dass Sketchup "Ruby Version Agile" sein muss, was eine Codierungsänderung durch die Google Guys in Boulder bedeutet.

1
* "... was ich etwas veraltet finde." * Für die Nachwelt, bitte erweitern Sie dies. Warum sollte Google Sketchup Ihrer Meinung nach von einem Ruby-Upgrade profitieren? fideli vor 12 Jahren 0

1 Antwort auf die Frage

1
ere

Neben der Aktualisierung von Ruby auf Ihrem gesamten Computer, die besonders schmerzhaft und möglicherweise zerstörerisch sein kann, wäre die Verwendung von RVM die Verwaltung bestimmter Ruby-Versionen. Dies ist besonders gut, da das Aktualisieren von Ruby für Ihren gesamten Computer dazu führen kann, dass andere Anwendungen, die von einer bestimmten Version abhängig sind, beschädigt werden.

Sie sollten in der Lage sein, RVM auf einfache Weise zu skizzieren, um Ihre bestimmte Ruby-Version über eine Einstellung abzurufen oder direkt von der Befehlszeile aus zu starten.

RVM http://beginrescueend.com/

Es gibt auch einen Screencast mit Details zur Installation und Verwaltung von RVM