2012-04-03 10 views
6

Ich benutze Homebrew (Linux-Port), um FreeTDS zu installieren und versuche, meine App mit Gem tinytds zu installieren/Bundle zu installieren. Ich erhalte diese Ausgabefehler, wenn BündelHomebrew/TinyTDS/FreeTDS Bundle Fehler

Installing tiny_tds (0.5.1) with native extensions 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. 

     /home/deployer/.rbenv/versions/1.9.2-p290/bin/ruby extconf.rb 

/usr/bin/ld: /opt/homebrew/lib/libsybdb.a(dblib.o): relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC 

/opt/homebrew/lib/libsybdb.a: could not read symbols: Bad value 

Ziemlich ähnlich wie dieses Update installieren zu tun, aber ich habe nicht die genannten Dateien in meinem Ordner: https://stackoverflow.com/a/7119224/1130736

Inhalt von Homebrew lib Ordner:

/opt/homebrew/lib$ ls 
libct.a libsybdb.a 

Voll Fehler dump:

full error dump: 

Installing tiny_tds (0.5.1) with native extensions 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. 

     /home/deployer/.rbenv/versions/1.9.2-p290/bin/ruby extconf.rb 
checking for iconv_open() in iconv.h... yes 
checking for sybfront.h... yes 
checking for sybdb.h... yes 
checking for tdsdbopen() in -lsybdb... yes 
checking for ct_bind() in -lct... yes 
creating Makefile 

make 
/usr/bin/gcc -I. -I/home/deployer/.rbenv/versions/1.9.2-p290/include/ruby-1.9.1/x86_64-linux -I/home/deployer/.rbenv/versions/1.9.2-p290/include/ruby-1.9.1/ruby/backward -I/home/deployer/.rbenv/versions/1.9.2-p290/include/ruby-1.9.1 -I. -DHAVE_ICONV_OPEN -DHAVE_SYBFRONT_H -DHAVE_SYBDB_H -I/opt/homebrew/include -I/usr/local/include -I/usr/include -I'/home/deployer/.rbenv/versions/1.9.2-p290/include' -fPIC -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wno-long-long -o client.o -c client.c 
client.c: In function ‘tinytds_err_handler’: 
client.c:52: warning: initialization discards qualifiers from pointer target type 
client.c: In function ‘tinytds_msg_handler’: 
client.c:100: warning: initialization discards qualifiers from pointer target type 
/usr/bin/gcc -I. -I/home/deployer/.rbenv/versions/1.9.2-p290/include/ruby-1.9.1/x86_64-linux -I/home/deployer/.rbenv/versions/1.9.2-p290/include/ruby-1.9.1/ruby/backward -I/home/deployer/.rbenv/versions/1.9.2-p290/include/ruby-1.9.1 -I. -DHAVE_ICONV_OPEN -DHAVE_SYBFRONT_H -DHAVE_SYBDB_H -I/opt/homebrew/include -I/usr/local/include -I/usr/include -I'/home/deployer/.rbenv/versions/1.9.2-p290/include' -fPIC -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wno-long-long -o result.o -c result.c 
/usr/bin/gcc -I. -I/home/deployer/.rbenv/versions/1.9.2-p290/include/ruby-1.9.1/x86_64-linux -I/home/deployer/.rbenv/versions/1.9.2-p290/include/ruby-1.9.1/ruby/backward -I/home/deployer/.rbenv/versions/1.9.2-p290/include/ruby-1.9.1 -I. -DHAVE_ICONV_OPEN -DHAVE_SYBFRONT_H -DHAVE_SYBDB_H -I/opt/homebrew/include -I/usr/local/include -I/usr/include -I'/home/deployer/.rbenv/versions/1.9.2-p290/include' -fPIC -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wno-long-long -o tiny_tds_ext.o -c tiny_tds_ext.c 
/usr/bin/gcc -shared -o tiny_tds.so client.o result.o tiny_tds_ext.o -L. -L/home/deployer/.rbenv/versions/1.9.2-p290/lib -Wl,-R/home/deployer/.rbenv/versions/1.9.2-p290/lib -L/home/deployer/.rbenv/versions/1.9.2-p290/lib -Wl,-R/home/deployer/.rbenv/versions/1.9.2-p290/lib -L/opt/homebrew/lib -Wl,-R/opt/homebrew/lib -L/usr/lib -Wl,-R/usr/lib -L. -L'/home/deployer/.rbenv/versions/1.9.2-p290/lib' -rdynamic -Wl,-export-dynamic -lct -lsybdb -lpthread -lrt -ldl -lcrypt -lm -lc 
/usr/bin/ld: /opt/homebrew/lib/libsybdb.a(dblib.o): relocation R_X86_64_32 against `.rodata' can not be used when making a shared object; recompile with -fPIC 
/opt/homebrew/lib/libsybdb.a: could not read symbols: Bad value 
collect2: ld returned 1 exit status 
make: *** [tiny_tds.so] Error 1 


Gem files will remain installed in /home/deployer/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/tiny_tds-0.5.1 for inspection. 
Results logged to /home/deployer/.rbenv/versions/1.9.2-p290/lib/ruby/gems/1.9.1/gems/tiny_tds-0.5.1/ext/tiny_tds/gem_make.out 
An error occured while installing tiny_tds (0.5.1), and Bundler cannot continue. 
Make sure that `gem install tiny_tds -v '0.5.1'` succeeds before bundling.' 
+0

hast du jemals eine Lösung dafür gefunden? – shergill

Antwort

7

ich Filzhut laufen, aber das Update für mich

sudo yum install freetds-devel 

ist bin ich ziemlich sicher, dass Sie nur das Entwicklungspaket von freetds für haben müssen dies funktioniert. Nachdem ich das devel-Paket hatte, funktionierte mein

tadellos.

+6

für Ubuntu Sudo apt-get installieren freetds-dev –

10

Installieren Sie FreeTDS mit Homebrew: brew install freetds.

Dann sollte diese Installation arbeiten: gem install tiny_tds

+0

dies funktioniert nicht für mich, weil es nicht die 'lsybdb.so' Datei macht – abc123

-1

ich gleiches Problem habe ich es mit diesen beiden Befehlen gelöst: Gebräu installieren freetds

Und Sie brauchen Juwel mit x64-Flag zu installieren: ARCHFLAGS = "-arch x86_64" gem installieren tiny_tds

Verwandte Themen