Nachdem ich nicht auf meine MySQL Datenbank zugreifen konnte wollte ich mit einem Update die gems fixen, aber sehr selbst, es war ein etwas verzwickteres Problem.
sudo gem update
Updating installed gems…
Attempting remote update of mysql
Select which gem to install for your platform (universal-darwin8.0)
1. mysql 2.7.3 (mswin32)
2. mysql 2.7.1 (mswin32)
3. mysql 2.7 (ruby)
4. mysql 2.6 (ruby)
5. Skip this gem6. Cancel installation
> 3
Building native extensions. This could take a while…
ERROR: While executing gem … (Gem::Installer::ExtensionBuildError)
ERROR: Failed to build gem native extension.ruby extconf.rb update
checking for mysql_query() in -lmysqlclient… no
checking for main() in -lm… yes
checking for mysql_query() in -lmysqlclient… no
checking for main() in -lz… yes
checking for mysql_query() in -lmysqlclient… no
checking for main() in -lsocket… no
checking for mysql_query() in -lmysqlclient… no
checking for main() in -lnsl… no
checking for mysql_query() in -lmysqlclient… noGem files will remain installed in /usr/local/lib/ruby/gems/1.8/gems/mysql-2.7 for inspection.
Results logged to /usr/local/lib/ruby/gems/1.8/gems/mysql-2.7/gem_make.out
Tja, das war es wohl, der gleiche Fehler wie immer, aber im Netz habe ich unter Installing Ruby on Rails with MySQL einen sehr guten Bericht gefunden.
Update der Sudo Gems
$ sudo gem install mysql — –with-mysql-config=/usr/local/mysql/bin/mysql_config
Select which gem to install for your platform (universal-darwin8.0)
1. mysql 2.7.3 (mswin32)
2. mysql 2.7.1 (mswin32)
3. mysql 2.7 (ruby)
4. mysql 2.6 (ruby)
5. Skip this gem
6. Cancel installation
> 3
Building native extensions. This could take a while…
Successfully installed mysql-2.7
Jetzt ist der Treiber angeblich richtig installiert. Aber leider nur angeblich.
Allerdings erhalte ich über die IRB Console immer noch einen Fehler.
$ irb -r mysql
/usr/local/lib/ruby/1.8/irb/init.rb:252:in `require’: no such file to load — mysql (LoadError)
from /usr/local/lib/ruby/1.8/irb/init.rb:252:in `load_modules’
from /usr/local/lib/ruby/1.8/irb/init.rb:250:in `each’
from /usr/local/lib/ruby/1.8/irb/init.rb:250:in `load_modules’
from /usr/local/lib/ruby/1.8/irb/init.rb:21:in `setup’
from /usr/local/lib/ruby/1.8/irb.rb:54:in `start’
from /usr/local/bin/irb:13
Also gehts weiter in der Anleitung von SAKUZAKU.
$ cd /usr/local/lib/ruby/gems/1.8/gems/mysql-2.7
/usr/local/lib/ruby/gems/1.8/gems/mysql-2.7 schroedi$ ls
COPYING Makefile README_ja.html gem_make.out mkmf.log mysql.c mysql.gemspec test.rb
COPYING.ja README.html extconf.rb lib mysql.bundle mysql.c.in mysql.o tommy.css
Um dann den vorgegeben Befehler aus der Fehlermeldung einzugeben.
$ sudo ruby extconf.rb –with-mysql-config=/usr/local/mysql/bin/mysql_config
checking for mysql_ssl_set()… yes
checking for mysql.h… yes
creating Makefile
Danach müsssen wir das ganze noch mal neu übersetzen. Keine Sorge, es dauert nicht lange.
/usr/local/lib/ruby/gems/1.8/gems/mysql-2.7 schroedi$ sudo make
gcc -I. -I. -I/usr/local/lib/ruby/1.8/universal-darwin8.0 -I. -DHAVE_MYSQL_SSL_SET -DHAVE_MYSQL_H -I/usr/local/mysql/include -Os -arch i386 -fno-common -fno-common -g -O2 -fno-common -pipe -fno-common -arch i386 -c mysql.c
cc -dynamic -bundle -undefined suppress -flat_namespace -arch i386 -L”/usr/local/lib” -o mysql.bundle mysql.o -lruby -L/usr/local/mysql/lib -lmysqlclient -lz -lm -lpthread -ldl -lobjc
/usr/bin/ld: warning multiple definitions of symbol _setregid
/usr/local/lib/libruby.dylib(process.o) definition of _setregid
/usr/lib/gcc/i686-apple-darwin8/4.0.1/../../../libm.dylib(setregid.So) definition of _setregid
/usr/bin/ld: warning multiple definitions of symbol _setreuid
/usr/local/lib/libruby.dylib(process.o) definition of _setreuid
/usr/lib/gcc/i686-apple-darwin8/4.0.1/../../../libm.dylib(setreuid.So) definition of _setreuid
mario-schroders-computer:/usr/local/lib/ruby/gems/1.8/gems/mysql-2.7 schroedi$ sudo make install
/usr/bin/install -c -m 0755 mysql.bundle /usr/local/lib/ruby/site_ruby/1.8/universal-darwin8.0
Aufräumen, bietet sich an, make clean macht es auch ohne zu murren.
/usr/local/lib/ruby/gems/1.8/gems/mysql-2.7 schroedi$ sudo make clean
Jetzt sollte eigentlich alles wieder in Ordnung sein, aber ein Blick in die IRB zeigt wieder einen Fehler.
/usr/local/lib/ruby/gems/1.8/gems/mysql-2.7 schroedi$ irb -r mysql
dyld: NSLinkModule() error
dyld: Library not loaded: /usr/local/mysql/lib/mysql/libmysqlclient.15.dylib
Referenced from: /usr/local/lib/ruby/site_ruby/1.8/universal-darwin8.0/mysql.bundle
Reason: image not found
Trace/BPT trap
So Latein am Ende und die Datenbankanbindung mit Rails klappt leider noch nicht.
Hat jemand eine Idee?
Hat Dir der Artikel gefallen, dann Abonniere den RSS FEED
Tweet This
Twitter |
Stumble this or
Delicious this
