每当我尝试构建DBD::Sybase
连接到 MSSQL 时出现错误,
$ sudo cpanp install DBD::Sybase
Installing DBD::Sybase (1.15)
Running [/usr/bin/perl /usr/bin/cpanp-run-perl /home/ecarroll/.cpanplus/5.14.2/build/DBD-Sybase-1.15/Makefile.PL INSTALLDIRS=site]...
Can't find any Sybase libraries in /etc/lib or /etc/lib64 at /home/ecarroll/.cpanplus/5.14.2/build/DBD-Sybase-1.15/Makefile.PL line 155, <IN> line 44.
BEGIN failed--compilation aborted at /usr/bin/cpanp-run-perl line 11, <IN> line 44.
[ERROR] Could not run '/usr/bin/perl Makefile.PL': Can't find any Sybase libraries in /etc/lib or /etc/lib64 at /home/ecarroll/.cpanplus/5.14.2/build/DBD-Sybase-1.15/Makefile.PL line 155, <IN> line 44.
BEGIN failed--compilation aborted at /usr/bin/cpanp-run-perl line 11, <IN> line 44.
-- cannot continue
[ERROR] Unable to create a new distribution object for 'DBD::Sybase' -- cannot continue
*** Install log written to:
/home/ecarroll/.cpanplus/install-logs/DBD-Sybase-1.15-1374605483.log
Error installing 'DBD::Sybase'
Problem installing one or more modules
我在其他 Debian 系统上也遇到过这个错误。
有两种方法可以做到这一点,
- (a) 使用发行版提供的 freetds
- 或者,(b) 在上游安装普通的 freetds 并以此为基础进行构建。
第二个选项 (b) 始终是可能的,但是您的系统可能有两个不同版本的 freetds。
如果没有一些黑客攻击就无法完成第一个选项,并且作者不会修复它。 https://rt.cpan.org/Ticket/Display.html?id=34053他只是很顽固,想要修复内部结构以匹配他使用的操作系统,而不是让它接受其他配置。
内部DBD::Sybase
期望有一个目录和一个$libdir
(一个子目录lib
or lib64
)。目录DBD::Sybase
正确构建的要求是not由 Debian 软件包提供freetds-dev
; Debian 软件包安装到/usr/include
其中没有lib
or a lib64
子目录。你可以通过愚弄来解决这个问题make
并重新创建该结构,首先确保您有freetds-dev
安装,
sudo apt-get install freetds-dev
然后链接它以创建一个伪包。在我的 64 位机器上,它看起来像这样。
mkdir /tmp/freetds
ln -s /usr/lib/x86_64-linux-gnu/ /tmp/freetds/lib64
ln -s /usr/include /tmp/freetds/include/freetds
现在,它应该可以工作了,您可以构建DBD::Sybase
针对系统库。
sudo SYBASE=/tmp/freetds cpanp install DBD::Sybase
Viola.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)