Editor's note: This article explores how you can "be your own SAS admin" by installing and running SAS 9 for Linux on your own Windows workstation. It may be useful for daily tasks, or for testing changes in a dev environment before deploying to a larger installation. Note that SAS also offers SAS Analytics Pro for SAS Viya, a containerized image of SAS that can be deployed in a similar way.
Introduction
SAS 9 run-time - SAS Foundation - is tied to a license file - the setinit. Every SAS user has, sometimes frustratingly, experienced some kind of interruption when the license is over and must be updated. This updating process requires elevated privileges on Windows and our organisations are now, understandably, very wary to give them even for a limited time and scope since it's disabling the main safeguard against virus or hacking.
Even a security-obsessed company I have worked for optionally proposed to enable WSL2 on your company PC, prepackaged for a streamlined deployment. This full-fledged Linux extension of Windows gives you the full capacity to install, configure, run and update a complete SAS 9 installment. The general use case for WSL2 in IT might imply Docker image building, deployment and testing in a personal Dev env ; leveraging this virtualisation tool will also give you extra benefits, notably with SAS. This article explores SAS 9 on WSL2; another option closer to SAS Viya might SAS Analytics Pro on WSL2, especially using IOM Clients like SAS Enterprise Guide or SAS VS Code extension.
WSL2
There is no better introduction for Windows Sub-System WSL than the welcome pane from Microsoft itself :
Run WSL settings on your start menu and click on the Tux icon ("Tux", I am told by Wikipedia - being the official name of the Linux smiling penguin mascot).
WSL2 is the Linux desktop virtualization technology provided by Microsoft on Windows (10 or 11). It is now fully integrated to Windows OS, execution stack and user experience. You are able to make your own way of Linux :
deploy your own distro or install some already available
start/stop etc. the VM with the command line (wsl CLI)
configure the Linux VM network , storage interface or run-time
etc.
WSL2 is Microsoft Unix Kernel integration to Windows Operating System, a bit like Darwin is to MacOS (formerly MacOS X). WSL2 can dynamically share hardware resources with Windows but (today) remains optional and runs in its own windows NT process (vmmemWSL). Based on a Linux Kernel, it can run any Linux-based distributions replacing older products like VirtualBox or VMWare Workstation. Windows Terminal is the preferred choice as SSH client interacting with WSL2, but VS Code
Note:
Due to the close integration between the underlying virtualisation technology (Hyper-V) and Windows Host, WSL2 can be configured from top to bottom without High Windows Privileges (Local Administrator Access). As an exception however, attaching a new storage disk to WSL2 requires it , although that's rarely needed from my experience : see https://learn.microsoft.com/en-us/windows/wsl/wsl2-mount-disk.
Note from the editor : VS Code is coming to you
Even if SAS Enterprise Guide is not available with a recent version packaged for deployment in your organisation, I am quite sure the all-pervasive editor Visual Studio Code ( VS Code in short) can be installed with its extension store including the SAS extension, allowing you to run SAS 9 with a modern interface locally and update it accordingly clientwise.
New playing field
Then, with SAS 9 installed in WSL2 and the SAS Extension of VS Code, even a non admin Windows user is able to:
update the Linux server with the package manager (apt, yum)
install, configure, upgrade the SAS Server
update the SAS 9 licence each year
update the VS Code client SAS (official) extension
For instance, you become fully independent with testing new pieces of SAS software and do not have to ask your preferred provider of SAS access but once a year . I was for instance able to test some external ODBC driver with SAS ODBC connector all by myself on my company PC.
Hardware specs
My machine is equipped with a, Intel Core i7 CPU with 8 cores (hyperthreaded), 32 GB of Ram and 1TB of SSD storage. Be aware that WSL (VmmemWSL process) requires at least 0,5Gb and up to 2 or 3 GB of RAM depending on the workload. Therefore, 16GB RAM would not be enough , 24 or 32GB of memory should be considered instead.
SAS windows in a Linux view
SAS 9 on Linux the old way
Nowadays, using VS Code
What is inside, what isn't
This article won't guide you into all the details of a SAS installation on Linux. I have put separately here <git repo > some installation files I used that you might replicate with your own SAS Depot. Rather I will stress out some particular points during this installation to help you follow the same route safely, or give you further ideas for devising your own SAS sandbox.
If you are not a SAS Administrator experienced with installing SAS 9 then ask for one to help you. It's fun and not over-complicated, afterwards you will gain extra technical knowledge to further your career path with SAS software ;-). You might also become a SAS Admin yourself if administration suits you, or take the copilot seat of the captain already in charge !
Technical skills
A minimal knowledge of Linux and bash scripting language is necessary
A minimal knowledge of SAS 9 components on Linux is preferable
Last but not least, some knowledge of SAS 9 Metadata administration and configuration using SAS Management Console (SMC).
SAS 9 minimal server deployment offer is called Office Analytics - usually abridged "oa".
System requirements
A SAS Depot with a valid license for :
a SAS Foundation on Linux x64
a SAS Office Analytics on Linux x64 (better)
Note that minimal standard supported version, as of Sept. 1st 2025 is SAS 9.4 M8.
[Important] Windows 11 release 22H2+
I tested my steps with SAS 9.4 release M7.
Linux distribution: Oracle Linux
Two dozen versions if not many more linux distros are provided through official Microsoft installation channel for WSL2. Your IT enterprise environment shall probably only support of few, like Ubuntu or Debian usually used by Docker devs. If, you can also readily deploy your own WSL2 with a corresponding image since it is fully supported by Red Hat.
Try asking for the Oracle Linux version 9 image if you cannot have some RHEL license: it is fully supported by SAS and a free clone of Red Hat Enterprise Linux – like former CentOS - which is the standard of Enterprise Linux distro apart from Desktop env. or specific usages.
I have been told that SAS 9 runs fine on Ubuntu (not officially supported); please, fellow Ubuntu users , give your recommendations in the comment section below for further guidance.
wsl --list --online NAME FRIENDLY NAME AlmaLinux-10 AlmaLinux OS 10 Debian Debian GNU/Linux FedoraLinux-42 Fedora Linux 42 SUSE-Linux-Enterprise-15-SP6 SUSE Linux Enterprise 15 SP6 Ubuntu-24.04 Ubuntu 24.04 LTS … openSUSE-Leap-15.6 openSUSE Leap 15.6 Ubuntu-22.04 Ubuntu 22.04 LTS … OracleLinux_9_5 Oracle Linux 9.5
I am already familiar with RHEL distributions, slightly less with siblings like Debian/Ubuntu thus I chose Oracle Linux 9.5 which is a RHEL 9.5 alternative fully supported by SAS with SAS 9.4 M7+.
https://devblogs.microsoft.com/commandline/whats-new-in-the-windows-subsystem-for-linux-in-november-2024/
With great power comes great responsibility : WSL2 configuration
You don't need any specific Windows (AD) privileges to configure your WSL2 machine since the host configuration file is stored into your %UserProfile% personal folder and since, on Linux, you are given the sudo ALL highest privilege elevation (root) and become Master after God. (source : https://learn.microsoft.com/en-us/windows/wsl/wsl-config)
Host : .wslconfig file
location
%UserProfile%\.wslconfig
content
[wsl2]
networkingMode=mirrored
dnsTunneling=true
The networkingMode configured to mirroring is required in order to enable network redirection between linux and windows using the "localhost" destination address instead of some redirection IP with etc\hosts file, out of reach of the non admin user. This mode is the gamechanger (see https://learn.microsoft.com/en-us/windows/wsl/networking).
Guest : wsl.conf
location
/etc/wslconf
content
[boot]
systemd=true
I recommend aligning with RHEL 9 default services manager now SystemD (sysctl) but you can run SAS servers with the previous init.d nonetheless .
Note:
Be careful when deploying new software on your WSL2 VM using root privileges. "Sideloading" - here directly installing RPM packages from unofficial repositories is not a good practice unless you are fully aware of the risks and can trace back the origin of the code. Even the need for compiling external source code (gcc) must be carefully assessed. Ask for IT Support Team guidance and approval beforehand.
Plan your deployment : small steps and large strides
Here are the macro steps I followed :
Pre-installation
[WSL2] installing and configuring the WSL2 VM with Oracle Linux 9.5
[Linux] installing the RPM Packages required by SAS 9 on Linux
[Windows] copying or mounting the shared drive with the SAS Depot to the Windows PC
[Windows] [ IT Support] installation of SAS Enterprise Guide
Installation Steps
5. [Linux] Generating the SAS Deployment Wizard response files for installing SAS OA
Best practice: deploy in two steps, Installation (1) then Configuration (2).
See for guidance on the response files: https://github.com/ronan-martorell/sas9wsl-tools/tree/main/sdw_response_examples
/mnt/d/SASDepot/SAS94TS1M7/setup.sh -record -responsefile "/opt/sas/sasoa1machine-install-YOURS.properties" /mnt/d/SASDepot/SAS94TS1M7/setup.sh -record -responsefile "/opt/sas/sasoa1machine-record-YOURS.properties"
Deployment Plan Category
Standard deployment Plan
Deployment Plan Name
Office Analytics, one machine
Fully-qualified Local Host Name
localhost
Short Local Host Name
localhost
6. [Linux] Deploying SAS OA with the previous scripts
/mnt/d/SASDepot/SAS94TS1M7/setup.sh -deploy -partialprompt -responsefile "/opt/sas/sasoa1machine-install-YOURS.properties" /mnt/d/SASDepot/SAS94TS1M7/setup.sh -deploy -partialprompt -responsefile "/opt/sas/sasoa1machine-record-YOURS.properties"
Post-Installation
7. [Linux] Configuring the new SAS deployment : metadata, system options, sas.server launcher script
8. [Windows] Configuring new SAS IOM Profile to connect VS Code extension
Some further optimisation
SAS IOM Core services only
I only needed to run SAS Workspace server which relies on SAS Metadata Server with the ObjectSpawner. For this purpose, I disabled the Middle-Tier services with the following modification of the sas.server script
cd $SASCFG
cp sas.servers sas.servers.bak
sed -i 's/SCRIPT_MID=YES/SCRIPT_MID=NO/g' sas.servers
sed -i 's/SCRIPT_PRE=YES/SCRIPT_PRE=NO/g' sas.servers
Automatic SAS Services start/stop at Linux startup/shutdown
This greatly simplifies the handling of SAS services : they just run once the WSL2 is active and stopped when inactive. See the first lines of the sas.server script .
Technically, once systemD is enabled, an init.d service automatically generates a new systemD unit service.
As user "root", copy the sas.servers script (not .pre or .mid) to /etc/init.d:
New aliases in your bash session
For manual command lines, see the aliases in the bashrc-example :
https://github.com/ronan-martorell/sas9wsl-tools
SAS Servers logs : no more clogging the server folders !
Since the Linux WSL2 VM is often started and stopped, daily if not more frequently, the number of log files generated by the SAS Metadata and Object Spawner services is increasing by the day with each new process instance. I provided an example of SAS log cleaning script for archiving these log files on a regular basis. The default verbosity being moderate (Info Level), SAS IOM Server logs likely won't saturate your folders but after some time, dozens of files makes any manual inspection in case of debugging quite difficult; therefore archiving log is a priority.
See cleanlog script for instance :
https://github.com/ronan-martorell/sas9wsl-tools
Non default SAS system options values
Always activate Compression by default :
/opt/sas/sasbin/SASFoundation/9.4/sasv9_local.cfg
-COMPRESS YES
Conclusion : WSL2 made my day
With SAS on WSL2, I was able to develop some code for testing a specific ODBC driver and scripting some macros for generating compressed JSON file successfully. I made some changes on the SAS metadata repository, adding a new Workspace Server for Unicode (UTF8) session and replacing the default Workspace authentication (system) with Token based on new Linux technical accounts I also created.
For the administration of the Linux VM, I installed the cockpit packages and UI which is so handy :
https://localhost:9090/system
Further Readings
From the must-read Platformadmin blog by Metacoda SAS expert Paul Homes, the first article introducing to WSL2 reuse for SAS :
https://platformadmin.com/blogs/paul/2023/08/remote-sas-management-console-using-wsl2/
List of required Linux packages :
https://support.sas.com/documentation/installcenter/en/ikfdtnlaxsr/66396/PDF/default/sreq.pdf
Extra RPM repo EPEL must be enabled for libpng12, libpng15 :
https://cloudspinx.com/how-to-enable-epel-repository-on-oracle-linux/
SAS Deployment Wizard documentation :
https://documentation.sas.com/doc/en/deploywizug/9.4/titlepage.htm
Comprehensive check-list for configuring and managing a SAS 9 or Viya Platform, encompassing every aspect of the job :
https://communities.sas.com/t5/SAS-Communities-Library/Checklist-of-SAS-Platform-Administration-Tasks/ta-p/223991
"SAS® Administration from the Ground Up" by Anja Fischer is a lively, easy-to-follow and and excellent introduction for gaining SAS 9 administration skills: https://support.sas.com/en/books/authors/anja-fischer.html
... View more