我正在尝试在Sun OS Solaris 11计算机上安装Sybase ASE 12.5.4,但在启动安装文件时收到以下消息:
:nnoremap ' ,
您是否知道可能导致此问题的原因?我想对此进行跟踪,看看究竟缺少什么,但我找不到如何。
感谢您的帮助。 干杯
答案 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二进制文件也可能无法正常运行!
答案 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机器启动设置,它似乎工作得很好。
感谢您的帮助。 的问候,