2012-04-03 7 views
6

He utilizado homebrew (puerto de linux) para instalar freeTDS y estoy tratando de implementar/paquete instalar mi aplicación con gem tinytds. Me sale este salida de error al hacer bulto instalarHomebrew/TinyTDS/FreeTDS paquete error

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 

bastante similar a esta revisión, pero no tengo los archivos que se hace referencia en mi carpeta: https://stackoverflow.com/a/7119224/1130736

contenido de la carpeta lib homebrew:

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

volcado de error completo:

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

¿Alguna vez encontró una solución para esto? – shergill

Respuesta

7

corro de ala, pero el arreglo para mí es

sudo yum install freetds-devel 

Estoy bastante seguro de que usted sólo tiene que tener el paquete de desarrollo de freetds para que esto funcione. Después de que tuve el paquete de desarrollo, mi

gem install tiny_tds 

funcionó a la perfección.

+6

para ubuntu sudo apt-get install freetds-dev –

10

Instale FreeTDS con homebrew: brew install freetds.

Entonces, esta instalación debería funcionar: gem install tiny_tds

+0

esto no funciona para mí porque no hace el archivo 'lsybdb.so' – abc123

-1

me mismo problema, lo resolví con estos dos comandos: cerveza instalar freetds

y lo que necesita para instalar la gema con la bandera x64: ARCHFLAGS = "-arch x86_64" gem install tiny_tds

Cuestiones relacionadas