Installing Sybase ASE 12.5.x on linux
Installing Sybase ASE 12.5.x on linux is fairly straightforward
if you already know a little about linux (or Unix), but it can be
a little confusing for newcomers, so I've put together this guide
that will hopefully make the operation more understandable.
This document focuses on getting ASE up and running. A future document
will focus on post-installation configuration tasks.
ASE on linux is officially supported on a fairly specific set of distributions:
However, this doesn't mean that ASE won't run on other versions, and in fact
ASE will install and run on most relatively recent versions of linux,
provided that it is based on glibc 2.2.4 or higher, and kernel 2.4.x or
higher, built for the i586 architecture (or higher) - with one notable
exception: Red Hat 9 has a buggy glibc that prevents ASE from running.
- Red Hat Enterprise Linux 2.1
- Red Hat Enterprise Linux 3.0
- SuSE Linux Enterprise 8.0
- Red Flag Linux 4.0
You can run the ase-check-prereq.pl
script to check that your current OS configuration will let ASE install and
run. Note that this script is very new and may not (yet) catch all the
The first thing is to make sure that your system is configured properly,
and that the correct set of software packages are installed.
- Disk layout:
If this is your first ASE install, or if this install is for educational
or test purposes and you just want to get ASE up and running then you
can skip this section and simply use operating system files for ASE
disk devices. In that case any directory on your system that has enough
room can be used. If you want to get the best possible performance,
then read on.
Optimum performance is achieved by using "raw" disk devices for Sybase,
which lets Sybase by-pass the operating system for IO operations. To use
raw devices you need to configure disk partitions (with fdisk or a similar
utility) that will be dedicated to Sybase, and whose size is pre-determined.
Configuring raw devices is explained quite well in the
Personally I only use raw devices for the user databases, and use operating
system files for the system databases as they usually see little write
activity (except for tempdb - but that's a special case).
If you don't want to (or can't) use raw devices then you can place the Sybase
disk devices in any directory where the "sybase" user has write access.
You initialize the disk devices for use by Sybase with the DISK INIT
command in isql, or through Sybase Central.
- Kernel configuration:
Sybase uses shared memory for it's memory pool so that multiple processes
can access the memory at the same time. The default maximum size for shared
memory on linux is 32MB, and the minimum that Sybase needs is 64MB.
To increase this limit edit
/etc/sysctl.conf and add
kernel.shmmax=<size in bytes>
setting the size to the amount of memory that you will want ASE to use,
but at least to 67108864 (64MB). If your system has a lot of RAM then you'll
want to set this value much higher as this will limit the amount of
memory that you can configure for ASE (for example I have it set to 2899102924
on a RH EL 3.x system with 3.8GB of RAM).
To update the running kernel you need to run
- Required Software Packages:
ASE is linked with a fairly old version of libstdc++. This library is
available as part of the "compatibility" packages (Red Hat and Fedora Core
call this package compat-libstdc++, SuSE calls it simply
compat, Gentoo calls it lib-compat) and should
be available on your distribution CDs or installable via yum/apt/emerge.
- Recent Java JVM:
As of ASE 12.5.1 Sybase has moved away from using RPMs and is now using a
java based installer. The installer is supposed to be self-contained,
but the JVM that ships with it tends to fail if you have a system with
glibc 2.3.x (RH EL 3.x, Fedora Core, etc). To get it to work you'll need
to install a recent JVM - I grab the latest J2SE package from
then point JAVA_HOME at this install:
- Create a "sybase" user:
You should never run ASE as the "root" user - use the adduser command to
create a user called "sybase". You can set the home directory (-d option)
to the directory where you want to install ASE (usually /opt/sybase).
[root@localhost mpeppler]# /usr/sbin/adduser -d /opt/sybase sybase
Performing the install
You've downloaded the .tgz file from Sybase (the Express Edition
from www.sybase.com/linux_promo, the Developper Edition from www.sybase.com/ase_1252devel, or maybe even a full version from SubscribeNet).
Unpack this file in a temporary directory (you'll need 300 to 400MB of
disk space for the temporary files). The install can be run in GUI
mode (uses X), or in console mode. If you use the GUI you'll need to make
sure that the user you run the install as ("sybase" if you follow these
instructions) is allowed to access your X server (you may need to run
Now you can run the setup program - run "setup" to be GUI mode, or
"setup -console" in text/terminal mode, and follow the prompts.
If you want to use ODBC on the linux side you'll need to use either the
"Full" or the "Custom" installation type - otherwise the "Typical" install
is probably fine.
A "Full" install of ASE Express takes about 645MB, so make sure that you
have enough space available.
Selecting the installation type:
Building/Initializing Your First Server
Once the install has completed you will be prompted to create an initial
set of servers (database, backup, etc.). These can be configured automatically
using standard defaults, or manually (custom configuration). In any
case the actual configuration parameters that will be used are displayed
for confirmation, so you can back up and manually fix anything that you
don't like. If this is your first Sybase ASE installation then you can
probably use the default values until you've become more comfortable
with it, at which point you can easily rebuild a new server with a
Sample Configuration Confirmation Screen:
In this example all the default values are used.
Server Build progress screen:
- Update /etc/ld.so.conf:
Sybase installs a number of shared libraries that are needed by client
applications. You should add the following to /etc/ld.so.conf to
make sure that these libraries are found at run-time (with the
correct path to the Sybase root directory, of course):
and then re-run /sbin/ldconfig.
- Default environment variables:
Sybase generates a couple of shell scripts that you should use to
automatically set environment variables so that your client applications
run correctly. The easiest way to get these to be loaded automatically
is to copy or link them to /etc/profile.d where they will automatically
be picked up by any shell startup.
Distribution Specific issues
ASE uses pthreads functionality that is sensitive to certain low-level
registers being available at run-time. It requires a glibc that is built
for the i586 or better processor architecture. For
gentoo you need edit /etc/make.conf
and set CFLAGS to include "-march=i586" (or i686) and CHOST to
"i586-pc-linux-gnu" (or i686). If you install Gentoo from a stage3
tar ball make sure that it's an i686 archive, not the
generic x86 version.
For Red Hat the main issue is RH 9 which has a buggy version of glibc
that won't let ASE run. All other relatively recent versions of Red Hat
and Fedora Core (from Red Hat 7.2 onwards) should work fine.
Slackware does not work, as it defaults to the i486 architecture
for all binaries.
If you run into a problem start by checking the installation and or server
error logs. The installation log file is called "log.txt" and is located
in the root directory of your ASE installation. The server error log
is located in $SYBASE/ASE-12.5/install and is called "servername.log" (where
"servername" is the name of the ASE server that you were trying to build).
One or both of these files should have information about the reason why the
install failed. Take that information, and start with the
ASE on Linux FAQ.
Next, a google search (both of the web and of groups) might help.
Finally, posting to the sybase.public.ase.linux newsgroup, or to the email@example.com
is a good way of getting help.