2016-11-17 50 views
1

我安裝DBD ::的Sybase用自制的OS X上安裝DBD ::的Sybase未能找到freetds的庫

我收到以下錯誤,設置

export SYBASE=/usr/local/Cellar/freetds/0.95.80 

和下載freetds的後:

brew install freetds 

錯誤:

Configuring DBD-Sybase-1.15 ... Can't find any Sybase libraries in /usr/local/Cellar/freetds/0.95.80/lib or /usr/local/Cellar/freetds/0.95.80/lib64 at Makefile.PL line 155, <IN> line 44 

我相信我需要直接編輯makefile。我需要編輯makefile嗎?我還可以使用CPANM嗎? CPANM在Brew(地窖)下。

/usr/local/Cellar/freetds/0.95.80/lib 
├── libct.4.dylib 
├── libct.a 
├── libct.dylib -> libct.4.dylib 
├── libsybdb.5.dylib 
├── libsybdb.a 
└── libsybdb.dylib -> libsybdb.5.dylib 


/usr/local/Cellar/freetds/0.95.80/ 
AUTHORS    ChangeLog   NEWS     TODO     etc     lib 
COPYING    INSTALL_RECEIPT.json README    bin     include    share 

回答

2

There is a reported bug in DBD::Sybase on OS X這是導致您的問題。

One part of the configuration認爲你在Windows上。 Perl將OS X報告爲darwin,DBD :: Sybase正在檢查/win/,如MSWin32cygwin。因此它會查找dll目錄,但錯誤地報告它正在查找liblib64

快速修復是使用cpanm --prompt DBD::Sybase。當它失敗時,cpanm會詢問該怎麼做。

Configuring DBD-Sybase failed. 
You can s)kip, r)etry, e)xamine build log, or l)ook ? [s] 

告訴它l)ook。這會將您轉儲到具有DBD :: Sybase的解壓源代碼的shell中。使用編輯器刪除Makefile.PL中的行143-145。

if ($^O =~ /win/i) { 
    @libdir = ('dll'); 
} 

然後exit殼。 cpanm會問你要做什麼,告訴它r)etry。它應該使用你編輯的Makefile.PL。

+0

這是我不確定的部分。所以cpanm獲取這些文件,然後在更改後我將使用新的makefile運行什麼命令? cpanm?並指向目錄? – paulj

+0

@paulj請勿觸摸由Makefile.PL生成的Makefile。我已編輯完整的說明到答案 – Schwern

+0

它工作到一個點。所以回答接受。想知道跳過測試的任何方法:DBD :: Sybase模塊需要訪問Sybase服務器來運行測試,因爲它們在測試ms-sql-server上失敗。 – paulj