Sybase 12.5安装(SunOS)上的系统调用错误(核心转储)

时间:2015-05-07 09:06:32

标签: installation system call solaris sybase-ase

我正在尝试在Sun OS Solaris 11计算机上安装Sybase ASE 12.5.4,但在启动安装文件时收到以下消息:

:nnoremap ' ,

您是否知道可能导致此问题的原因?我想对此进行跟踪,看看究竟缺少什么,但我找不到如何。

感谢您的帮助。 干杯

2 个答案:

答案 0 :(得分:3)

请勿在生产系统上使用此黑客!

Solaris 11中不推荐使用许多系统调用,似乎删除了access

$ grep access /usr/include/sys/syscall.h 
#define SYS_faccessat   45

其中一些仍然可以从Solaris 10品牌区域访问,有些似乎永远消失了。相反,您必须使用"" -functions with AT_FDCWD param,在您的情况下它是faccessat。这个更改被 libc 隐藏了,但是如果Sybase带来了自己的 libc ,那么事情就会变得糟糕,如果它们与它静态链接,那就更糟了。

如果access是他们自己的libc中的共享库函数,您仍然可以使用LD_PRELOAD hack来解决这个问题。写下以下来源:

#include <unistd.h>
#include <sys/fcntl.h>

int access(const char *fname, int amode) {
        return (faccessat(AT_FDCWD, fname, amode, 0));
}

将它与GCC或Solaris Studio(取决于Sybase使用的,可能是Solaris Studio)编译到共享库中:

$ gcc -shared -fPIC xaccess.c -o libaccess.so

导出LD_PRELOAD变量:

$ export LD_PRELOAD=./libaccess.so

请为运气祈祷,因为它可能在其他系统调用时失败,或者您使用了错误的编译器等。请注意,Sybase二进制文件也可能无法正常运行!

我是否警告过生产系统上的黑客攻击?而是使用品牌Solaris 10区域或Solaris 10 LDoms / VM

答案 1 :(得分:2)

谢谢大家的回复。

myaut 说:

  

Solaris 11中不推荐使用许多系统调用,访问似乎已被删除

因此,我的问题似乎与Sybase ASE 12.5.4和Solaris 11之间的不兼容性有关,因为此链接显示:http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.dc35889_1254/html/installsol/X22779.htm

Sybase ASE 12.5.4与Solaris 2.8(因此是Solaris 8)兼容,我从SAP论坛获得它与Solaris 9 100%兼容,并且很可能与Solaris 10兼容,但很明显,它似乎没有使用Solaris 11。

我已经设法从Solaris 10机器启动设置,它似乎工作得很好。

感谢您的帮助。 的问候,