Erhalten Sie Fehler für libxMl2.2.dylib "Datei ist nicht von der erforderlichen Architektur"
Frage
Ich versuche, RVM zu verwenden, um Ruby 1.9.2 auf meinem Mac zu installieren.
Mein .bash_profile
enthält
ARCHFLAGS="-arch x86_64"
Um Ruby zu installieren, renne ich:
rvm install 1.9.2 -C --enable-shared
Ich erhalte beim Kompilieren einen Fehler. Hier ist der Make.Error.log:
[2010-01-20 10:03:00] make
ld: in /usr/local/lib/libxml2.2.dylib, file is not of required architecture
collect2: ld returned 1 exit status
make[1]: *** [../../.ext/i386-darwin10.2.0/tcltklib.bundle] Error 1
make: *** [mkmain.sh] Error 1
BEARBEITEN:
Ich habe Readline von Source installiert und die Installation wie folgt ausprobiert:
rvm install 1.9.2 -C --enable-shared,--with-readline-dir=/usr/local
Dies führte zu dem gleichen Fehler wie zuvor.
Die Standorte der Datei rcltklib.bundle sind:
/usr/local/lib/ruby/1.8/i686-darwin9.7.0/tcltklib.bundle
(Ich denke, diese Datei ist Teil der Ruby OSX -Installation)
Lösung
Jetzt habe ich es endlich herausgefunden.
Ich habe Ruby 1.8.7 von installiert Rubyosx Und es schien einige zerbrochene Bibliotheken zu geben, mit denen RVM seine Rubine zusammenstellte.
Die Lösung besteht darin, den Rubyosx Ruby aus zu entfernen /usr/local
.
Die weniger drastische Lösung besteht darin, das einfach umzubenennen /usr/local
Ordner beim Kompilieren mit RVM. Danach können Sie es zurück benennen und es funktioniert wie erwartet.
Ich bin froh, dass es jetzt funktioniert.
Andere Tipps
Sie setzen Archflags auf zwei verschiedene Architekturen. Wieso den? Versuchen Sie es nur mit -arch -x86_64
(Was mein weiß, ist der Standard in Schneeleopard).