This is a follow-up to my prior post on Getting SAS® Software running on Arch Linux 64-bit. In my quest for a new Linux distro the next stop was CrunchBang Linux. I like the look of CrunchBang because it’s lightweight, based on Debian, and uses Openbox by default. Being Debian based, like Ubuntu, I get to re-use the knowledge I gained from using Ubuntu over the last few years (it’s hard not to automatically type apt-get whenever I want to install something!). CrunchBang is not a rolling release distro like Arch or Gentoo but it’s other attributes make it well worth a look. I’ve seen a disclaimer on the web site where they say it “… could possibly make your computer go CRUNCH! BANG!” but from everything else I’ve read it sounds pretty stable. Anyway, I like my (own) computers to go crunch bang every now and then – it’s a great opportunity to learn something new ;)
I installed the CrunchBang 11 “Waldorf” 64-bit testing image in a multi-boot configuration, alongside Arch and Ubuntu, to test it with our existing SAS deployments. These are the steps I needed to take to get the existing SAS software installation running on CrunchBang 64-bit. As with Arch, no changes were needed to the SAS deployments, it just required a few minor changes and additional libraries for the CrunchBang installation.
After CrunchBang had been installed and I’d mounted the SAS installation volume, I tried to run SAS 9.3 M2 first and got the following error:
user@host:~$ sas93m2
/bin/sh: 0: Illegal option -p
I recognized this one immediately. I’d seen it several time in the past. Just like Ubuntu, CrunchBang has dash and not bash as the default shell.
user@host:~$ ls -al /bin/sh
lrwxrwxrwx 1 root root 4 Dec 15 22:26 /bin/sh -> dash
I wrote a post about this before: Running SAS on Ubuntu Linux: Dash to Bash. It can be resolved by switching to bash as the default shell with dpkg-reconfigure dash:
user@host:~$ sudo dpkg-reconfigure dash
… choose the No option to not use dash (and use bash).
With the shell issue resolved, the next error was:
user@host:~$ /opt/sas93m2/apps/SASFoundation/9.3/sas
ERROR: BRIDGE FAILURE CALLING UNKNOWN.
ERROR: UNABLE TO LOAD sasmotif FOR SUBSYSTEM 8.
SAS WTABORT (RESULTS) The SAS System has detected an abort condition. An Exception occurred during wthtrm().
Please Contact Technical Support.
Tasks
[MAIN ] [WAITING ] pri[ 5] reb[7FA258F78C90] WC[0] WN[1]
[IDLETASK] [READY ] pri[ 9] reb[7FA258F78C90]
[EVENTTSK] [WAITING ] pri[ 0] reb[7FA258F78C90] WC[0] WN[1]
[sasxkern] [WAITING ] pri[ 3] reb[7FA258F78C90] WC[0] WN[1]
[Session ] [WAITING ] pri[ 3] reb[7FA252E9F300] WC[0] WN[1]
[TKSRV ] [WAITING ] pri[ 3] reb[7FA252E9F8C0] WC[0] WN[1]
[DMS Proc] [WAITING ] pri[ 7] reb[7FA252EA0890] WC[0] WN[1]
[Language] [WAITING ] pri[ 7] reb[7FA252EA0890] WC[0] WN[1]
[RESULTS ] [RUNNING ] pri[ 7] reb[7FA251DE5570]
ERROR: Could not load /opt/sas93m2/apps/SASFoundation/9.3/dbcs/sasexe/sasmotif (33 images loaded)
ERROR: libXp.so.6: cannot open shared object file: No such file or directory
ERROR: BRIDGE FAILURE CALLING UNKNOWN.
ERROR: UNABLE TO LOAD sasmotif FOR SUBSYSTEM 8.
SAS WTABORT (RESULTS) The SAS System has detected an abort condition. An Exception occurred during wthtrm().
Please Contact Technical Support.
Tasks
[MAIN ] [WAITING ] pri[ 5] reb[7FA258F78C90] WC[0] WN[1]
[IDLETASK] [READY ] pri[ 9] reb[7FA258F78C90]
[EVENTTSK] [WAITING ] pri[ 0] reb[7FA258F78C90] WC[0] WN[1]
[sasxkern] [WAITING ] pri[ 3] reb[7FA258F78C90] WC[0] WN[1]
[Session ] [WAITING ] pri[ 3] reb[7FA252E9F300] WC[0] WN[1]
[TKSRV ] [WAITING ] pri[ 3] reb[7FA252E9F8C0] WC[0] WN[1]
[DMS Proc] [WAITING ] pri[ 7] reb[7FA252EA0890] WC[0] WN[1]
[Language] [WAITING ] pri[ 7] reb[7FA252EA0890] WC[0] WN[1]
[RESULTS ] [RUNNING ] pri[ 7] reb[7FA251DE5570]
Traceback
Traceback
No Traceback Available
No Traceback Available
ERROR: Could not load /opt/sas93m2/apps/SASFoundation/9.3/dbcs/sasexe/sasmotif (34 images loaded)
ERROR: libXp.so.6: cannot open shared object file: No such file or directory
ERROR: BRIDGE FAILURE CALLING UNKNOWN.
ERROR: UNABLE TO LOAD sasmotif FOR SUBSYSTEM 8.
WARNING: Display of UTF8 encoded data is not fully supported by the SAS Display Manager System.
ERROR: The Java process failed to launch.
ERROR: Java failed to start during the SAS startup.
NOTE: SAH239999I DMS, State, stopped
As with Arch, we were missing libXp. This was easily resolved by installing libxp6 with apt-get:
user@host:~$ sudo apt-get install libxp6
After installing libxp6, SAS 9.3 M2 was now starting ok, but I still had the following error at the top of the log window:
ERROR: The Java process failed to launch.
ERROR: Java failed to start during the SAS startup.
I thought this might be because whilst the SAS installation itself was 64-bit, it also included a 32-bit JRE, and I haven’t yet installed all the libraries required for running 32-bit binaries. I confirmed the 32-bit JRE was failing:
user@host:~$ /opt/sas93m2/apps/jre1.6.0_21/bin/java -version
-bash: /opt/sas93m2/apps/jre1.6.0_21/bin/java: No such file or directory
I knew I’d need 32-bit support in order get SAS 9.1.3 SP4 32-bit running anyway, so I might as well sort it out now. I’d done this in the past with Ubuntu by installing the ia32-libs package. However when I tried that here I ran into a little problem:
user@host:~$ apt-get install ia32-libs
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
ia32-libs : Depends: ia32-libs-i386 but it is not installable
I wasn’t immediately sure how to fix this one so I searched the CrunchBang forums. When I started looking at CrunchBang one of the things I liked were the forums. They seemed to be full of lots of very useful information and populated by very friendly people. Almost immediately I found this “Trying to install ia32-libs” post which then led me to this particularly helpful post: “[SOLVED] ia32 packages kept back from dist-upgrade” – it’s great when you find posts that start with with word solved! :) From that post I followed the instructions given at item #5 and it solved the problem. It also pointed to background info in a Multiarch HOWTO document on the Debian wiki.
I checked my config and found I only had 64-bit amd64 and no 32-bit i386 support:
user@host:~$ dpkg --print-architecture
amd64
user@host:~$ dpkg --print-foreign-architectures
… so I added i386:
user@host:~$ sudo dpkg --add-architecture i386
user@host:~$ dpkg --print-foreign-architectures
i386
… this was followed by adding [arch=amd64,i386] to each line of /etc/apt/sources.list (between the deb and the URL items) which for me resulted in this:
deb [arch=amd64,i386] http://packages.crunchbang.org/waldorf waldorf main
deb [arch=amd64,i386] http://http.debian.net/debian wheezy main contrib non-free
deb [arch=amd64,i386] http://security.debian.org/ wheezy/updates main
… and finally an update/upgrade and successful install of the ia32-libs package (which installed many i386 packages):
user@host:~$ sudo apt-get update
user@host:~$ sudo apt-get dist-upgrade
user@host:~$ sudo apt-get install ia32-libs
Once that had finished I tried the SAS 9.3 M2 installation’s 32-bit JRE and it worked:
user@host:~$ /opt/sas93m2/apps/jre1.6.0_21/bin/java -version
java version "1.6.0_21"
Java(TM) SE Runtime Environment (build 1.6.0_21-b06)
Java HotSpot(TM) Server VM (build 17.0-b16, mixed mode)
I verified that SAS 9.3 M2 was also starting without the Java error at the top of the log. The other 64-bit SAS versions 9.3 M1 and 9.2 M3 were also working now too. As a bonus, now I had 32-bit binary support, I was also able to run 32-bit SAS 9.1.3 SP4 without any additional changes.
As I mentioned in my earlier post, on getting SAS software running on Arch, the officially supported Linux platforms for SAS are RedHat and SUSE (as far as I know). Of course that doesn’t mean SAS won’t run on other Linux distros like CrunchBang and Arch, they’re just not officially supported. That makes sense – there are way too many Linux distros out there for SAS to be able to support them all. However, if like myself, you’re a developer, don’t have a strong requirement for official support with a business critical SAS installation, and want to try SAS on other Linux distributions, I hope you find these posts useful.