centos7sybase-ase15

ASE-15 isql command can not find sybase home on CentOS 7


I installed ASE-15 under directory /opt/sybase on CentOS 7 VM, then I ran SYBASE.sh to set environment variables, but it didn't work, because it outputs nothing when I typing echo $SYBASE on OS. So I set environment variables manually by typing cat SYBASE.env >> ~/.bash_profile, the content in SYBASE.env below.

[sybase@localhost sybase]$ cat /opt/sybase/SYBASE.env
SYBASE_JRE7_32=/opt/sybase/shared/JRE-7_0_7_32BIT
SYBASE_JRE7=/opt/sybase/shared/JRE-7_0_7_64BIT
SYBASE_JRE7_64=/opt/sybase/shared/JRE-7_0_7_64BIT
SYBASE_OCS=OCS-15_0
INCLUDE=/opt/sybase/OCS-15_0/include:$INCLUDE
LIB=/opt/sybase/OCS-15_0/lib:$LIB
PATH=/opt/sybase/OCS-15_0/bin:$PATH
LD_LIBRARY_PATH=/opt/sybase/OCS-15_0/lib:/opt/sybase/OCS-
15_0/lib3p64:/opt/sybase/OCS-15_0/lib3p:$LD_LIBRARY_PATH
LD_LIBRARY_PATH=/opt/sybase/DataAccess/ODBC/lib:$LD_LIBRARY_PATH
LD_LIBRARY_PATH=/opt/sybase/DataAccess64/ODBC/lib:$LD_LIBRARY_PATH
PATH=/opt/sybase/DBISQL/bin:$PATH
PATH=/opt/sybase/SCC-3_2/bin:$PATH
SCC_JAVA_HOME=/opt/sybase/shared/JRE-7_0_7_64BIT
SYBASE=/opt/sybase
SYBASE_ASE=ASE-15_0
PATH=/opt/sybase/ASE-15_0/bin:/opt/sybase/ASE-15_0/install:$PATH
SYBROOT=/opt/sybase
SYBASE_JRE_RTDS=/opt/sybase/shared/JRE-7_0_7_64BIT
LD_LIBRARY_PATH=/opt/sybase/ASE-15_0/lib:$LD_LIBRARY_PATH
SYBASE_WS=WS-15_0
PATH=/opt/sybase/ASE-15_0/jobscheduler/bin:$PATH
[sybase@localhost sybase]$ 

However, it occurs an error below when I execute isql cmd to connect with ASE-15 Database.

[sybase@localhost sybase]$ isql


The context allocation routine failed when it tried to load localization files!!
One or more following problems may caused the failure

Your sybase home directory is /home/sybase. Check the environment variable SYBASE if it is not the one you want!
Cannot access file /home/sybase/config/objectid.dat
An error occurred when attempting to allocate localization-related structures.
[sybase@localhost sybase]$ 

Then I input echo $SYBASE to check if the environment variable $SYBASE is correct.

[sybase@localhost sybase]$ echo $SYBASE
/opt/sybase

So I think I have specified the sybase home directory /opt/sybase, why isql command find file objectid.dat under /home/sybase/config instead of /opt/sybase/config?


Solution

  • Sybase's suffix and permissions for the SYBASE.[csh|sh] files are a bit misleading. You don't want to execute/run these files but rather source them, eg:

    # sh / bash / ksh
    . SYBASE.sh
    
    # csh
    source SYBASE.csh
    

    You should only have to add the following to your profile to successfully access isql:

    # sh / bash / ksh
    SYBASE=/opt/sybase
    . ${SYBASE}/SYBASE.sh