Michael Peppler
Sybase Consulting
Sybase on Linux
Install Guide for Sybase on Linux
General Sybase Resources
General Perl Resources
BCP Tool
Bug Tracker
Mailing List Archive
Downloads Directory
Sybase on Linux FAQ
Sybperl FAQ
Michael Peppler's resume

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.

Supported Distributions

ASE on linux is officially supported on a fairly specific set of distributions:
  • Red Hat Enterprise Linux 2.1
  • Red Hat Enterprise Linux 3.0
  • SuSE Linux Enterprise 8.0
  • Red Flag Linux 4.0
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.

You can run the 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 potential problems.

System configuration

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 Installation Guide.

    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

    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

    /sbin/sysctl -p

  • Required Software Packages:

    • libstdc++:

      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, and then point JAVA_HOME at this install:

      export JAVA_HOME=/usr/java/j2sdk1.4.2_05
  • 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, the Developper Edition from, 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 "xhost +".)

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 different configuration.

Sample Configuration Confirmation Screen:
In this example all the default values are used.

Server Build progress screen:

Post-install tasks

  • Update /etc/

    Sybase installs a number of shared libraries that are needed by client applications. You should add the following to /etc/ 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.

Getting help

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 is a good way of getting help.