2010-10-25 98 views
2

我試圖從RHEL 5上的Ruby 1.8.7連接到MS SQL Server。我使用FreeTDStiny_tds RubyGem。當.so文件存在時,爲什麼會出現「no such file or directory」錯誤?

我得到了它在OS X

工作的罰款在Linux上我安裝freetds的,並確認它可以連接到SQL Server的命令行沒有問題。 gem install tiny_tds還行。

然而,當我部署到Linux和嘗試打開Rails的控制檯我得到這個錯誤:

$ script/console production 
Loading production environment (Rails 2.3.5) 
libsybdb.so.5: cannot open shared object file: No such file or directory - /opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8/gems/tiny_tds-0.2.1/lib/tiny_tds/tiny_tds.so 
/opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8/gems/tiny_tds-0.2.1/lib/tiny_tds/tiny_tds.so 
/opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' 
/opt/deployed_rails_apps/employeedata/releases/20101025214030/vendor/rails/activesupport/lib/active_support/dependencies.rb:158:in `require' 
/opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8/gems/tiny_tds-0.2.1/lib/tiny_tds.rb:7 
/opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `gem_original_require' 
/opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:31:in `require' 

etc... 

我檢查這個文件,它說,它無法找到實際上並在文件系統中存在。 ..

/opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8/gems \ 
    /tiny_tds-0.2.1/lib/tiny_tds/tiny_tds.so 

任何想法如何讓這個工作?

+0

瘋狂的猜測,但你有沒有確保它不是一個不存在的東西的符號鏈接? – Pointy 2010-10-25 22:36:23

+0

不是符號鏈接。文件tiny_tds.so位於預期位置。 – Ethan 2010-10-25 22:48:26

回答

2

您是如何從源代碼或發行版安裝FreeTDS的?我發現很多基於分發的安裝不會安裝必需的頭文件和開發文件,這些文件被寶石用來定位所需的庫。如果你使用了發行版,你可能會尋找一個freetds-dev或類似的東西,並安裝它。

在發行版安裝中,也可以將文件安裝在與源安裝相同的目錄中。我遇到過幾次不同的軟件包。微小的TDS寶石可能有一些配置選項,讓你可以定義FreeTDS文件隱藏的位置。

爲tiny_tds的extconf.rb文件正在尋找這些文件:

FREETDS_LIBRARIES = ['sybdb'] 
FREETDS_HEADERS = ['sqlfront.h', 'sybdb.h', 'syberror.h'] 

做一個定位,或者找到你的主機上看到,如果你能找到這些文件。根據extconf.rb,這些庫應該基於/lib/lib/freetds,頭文件應該位於/include/include/freetds

+0

謝謝。我從源代碼構建它。 – Ethan 2010-10-26 17:09:34

+0

我最終經常這樣做。發行版本很好,但是當你嘗試構建它們時,經常會混淆問題,然後花幾個小時試圖找出如何挽救事情,最終添加-dev或卸載它並使用源代碼。 – 2010-10-26 18:29:04

+1

運行此命令/ sbin/ldconfig/usr/local/lib – vajapravin 2014-09-05 03:45:52

相關問題