2012-04-03 10 views
6

私はhomebrew(linuxポート)を使ってfreeTDSをインストールし、gem tinytdsを使って自分のアプリケーションを展開/バンドルしようとしています。バンドルHomebrew/TinyTDS/FreeTDSバンドルエラー

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 
この修正にかなり似て

をインストールをしているとき、私は、このエラー出力を得るが、私は私のフォルダに参照されるファイルはありません:自作libフォルダのhttps://stackoverflow.com/a/7119224/1130736

内容:

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

フル・エラー・ダンプ:

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

この問題を修正したことはありますか? – shergill

答えて

7
私はフェドー​​ラを実行

が、修正私のため

sudo yum install freetds-devel 

私はあなただけでこれが機能するためにFreeTDSの開発パッケージを持っている必要があることをかなり確信しています。私がdevelパッケージを手に入れた後、私は

gem install tiny_tds 

が完璧に働いていました。

+6

ubuntu sudo apt-get freetds-devをインストール –

10

自宅でFreeTDSをインストール:brew install freetds

次に、このインストール作業をする必要があります:gem install tiny_tds

+0

これは 'lsybdb.so'ファイルを作成しないので動作しません – abc123

-1

私は同じ問題を抱えて、私はこれら二つのコマンドでそれを解決:= ARCHFLAGS: 醸造FreeTDSのインストール

をそして、あなたは、x64フラグで宝石をインストールする必要があります"-arch x86_64" gem install tiny_tds

関連する問題