The steps below should help you, if you want to install SAP NetWeaver Developer Edition on Ubuntu VM (Virtual Machine). These steps have worked for both Ubuntu server and Ubuntu desktop releases, since 16.04 LTS up till the most recent release for when this blog was last updated: Ubuntu 21.04 LTS.
For the non-concise guide, which covers Ubuntu 1604 LTS up to Ubuntu 1910, and has lots of screenshots and too much detailed information for most people, see this blog:
Any suggestions for improving the text, are welcome. If you have trouble installing, you can describe what the issue is… but as noted below, there is no Helpdesk for this blog, so although I try to answer usefully, you need to be prepared to do the debugging and fixing activities yourself 🙂 .
UPDATE [June 2021]: for installing on Ubuntu, you will find this blog useful, for modifying the installer script so that the installation succeeds:
.. so highly recommend checking that blog, as otherwise you might get stuck.
Ok, so let’s get started..
Get the rar files for the latest version of SAP NetWeaver Developer Edition, and get Ubuntu.
Go to the SAP site:
Login using your P-user or S-user or SAP Universal ID, or create a P-user in case you do not already have such.
Download the relevant set of .rar files, which are under a heading such as “SAP NetWeaver AS ABAP Developer Edition 7.52 SP04”:
Extract the files into a directory on host machine, e.g /home/myuser/nw-unpacked
On macOS host, a good extractor for RAR files is The Unarchiver:
On Ubuntu host:
sudo apt install rar unrar
On SUSE hosts (openSUSE and SLES):
sudo zypper in unrar
On other Linux distros as host machine: no idea (haven’t tried).
On Windows hosts: 7zip worked for me back in the days when I had a Windows machine.
Download the .iso installer file for the latest Ubuntu desktop or server release:
Download and install a hypervisor, create a new VM.
VirtualBox and/or VMware Workstation Player / Fusion Pro. (If you want to use KVM, or ESXi, or whatever, then good luck with that, of course those should also be usable since their purpose is also to allow you to run VMs).
VirtualBox website: https://www.virtualbox.org/
VMware website: https://www.vmware.com/products.html (Download -> Free Product Downloads / Free Product Trials and Demos).
Create a new Ubuntu VM. Don’t use any “Easy Install” options, instead take care to specify the configurations to be optimal for the later installation of the SAP system. Use US-English (default) as the VM language, though obviously you will want to adjust the keyboard input source to match your host machine’s keyboard.
Hard Disk: at least 100 GB.
Memory: Recommended is at least 6144 MB (6 GB), but if your host can cope (i.e. host itself has enough memory to be able to run), then 8192 MB (8 GB) is better. Less than 6 GB, e.g. 5120 MB, it can work, but also the install can fail easily.
Processors: I usually assign about one quarter of the host machines processors. So if host has 8 processors available, I assign 2. (Assigning too many processors is usually counterproductive, in my experience).
Networking: NAT is easiest. (Bridged is possible, if you have the right kind of host adapters and the right Hypervisor and you can assign a static IP to your VM so that on your network it is not getting whatever your local DHCP server decides each time it joins the network).
Partition: use default, most of the disk other than boot is on ext4 I think. No LVM needed.
Hostname (of the new VM, specify during Ubuntu install procedure): vhcalnplci … you can assign a different host name, but then later when your Fiori apps from Launchpad don’t work, and your JCo / PyRFC client connections to RFC don’t work, then you will remember that it is best just to call it vhcalnplci next time you do this SAP on Ubuntu procedure.
Prepare the Ubuntu VM for the SAP install script.
Once you have installed the VM and logged in, open a Terminal (unless you are in Ubuntu server, in which case you already have a Terminal 😀). Commands to run:
sudo apt update sudo apt upgrade
sudo ufw status #firewall, should be inactive; if active, deactivate it: sudo ufw disable
sudo apt install csh #the C-shell, for install and for npladm user sudo apt install tcsh #optional (easier for npladm)
sudo apt search libaio #we look for the generic shared library sudo apt install libaio1 #in case libaio1 was the generic shared library
sudo apt install uuid #this is needed for generating unique id numbers.
When installed, uuid is not automatically switched on (not in active-running state), and using the “enable” option doesn’t seem to get it to start automatically after reboot; so, the command to activate it or reactivate it after every system reboot is (note there are 2 ‘d’-letters in the name of the daemon, unlike in the name of the package containing the daemon):
sudo systemctl start uuidd
There would be various ways to automate this, leaving this as a fun option for you to investigate.
Check that LANG=”en_US.UTF-8”, that is the default and is needed by the NW-installer as OS language.
If something else, try changing and reboot, e.g. sudo nano /etc/default/locale , reboot, recheck.
ip addr show #we need to know the IPv4 address of the VM
Comment out the line mapping the Ubuntu loopback IP 127.0.1.1 to vhcalnplci, and add the line mapping your network IP address to the short name and FQDN of your ubuntu VM. Short name is: vhcalnplci , and FQDN is: vhcalnplci.dummy.nodomain
sudo nano /etc/hosts
If you have plenty of disk space, the easiest solution to have the installer files, is to copy them from your host machine. For example let’s say your host is accessible from the guest on 172.16.106.1, and you have extracted all files into a folder called nw752 then the scp command to make a new folder called nw752 in your guest’s current directory, would be:
scp -r firstname.lastname@example.org:/path/to/nw752 .
[Note the lack of slash after “nw752” to ensure a folder called that is created instead of just copying the files and subdfolders, and the dot character at the end to say “into this current directory].
Otherwise you need to set up a shared folder, so that you have access to the SAP Installer files you extracted to the host machine. The exact procedure for setting up shared folder, depends on the host OS and on the hypervisor, also the procedures tend to change over time. See the non-concise blog for some hints, or just search the Internet for the relevant documentation. On VMware Fusion and VMware Workstation Player the following works for me, in the Ubuntu guest:
sudo nano /etc/fstab
Add a new line at the end of the table:
.host:/ /mnt/hgfs fuse.vmhgfs-fuse allow_other 0 0
Save and close. Now to pick up this line, we need to run:
sudo mount -a
End result is that in the Terminal, you can change directory to the directory in the VM where the shared folder is mounted.
Now we are close to starting install of SAP system, but first a few more commands… since quite a lot of stuff including apt upgrade has been run, we should reboot to make sure all new stuff has been picked up:
sudo reboot now
(Good idea after reboot to check using “ip” command that your IP address has not changed!).
Start up the uuidd (the 2nd “d” probably refers to the “daemon” of uuid).
sudo systemctl start uuidd systemctl status uuidd #should be up and running
You may want to take a snapshot of your VM now, then if install fails you can rollback. How to do that, depends on your hypervisor, see the relevant documentation.
Now you elevate yourself to be sudoer :
Change directory to the directory where the shared folder of SAP Installer files is mounted.
Probably the file called install.sh is not yet executable, if not then make it executable:
chmod +x install.sh
Now we can install the SAP system.
Hey ho, let’s go:
You need to say “yes” to the agreement question, and then provide a master password which will be used e.g. by the soon to be created Ubuntu users including one called “npladm”.
In my experience this script can then run for between 25 minutes and 90 minutes, depending on various factors. If the installation fails, then I’m sorry you need to work out yourself what went wrong and how to fix things, this blog is really not backed up by a Helpdesk. If you get the “Installation of NPL successful” message, then congratulations.
So if installation was successful, next step is to become the SAP OS user “npladm”, command:
su -l npladm
Initially (via the install script) npladm is using the csh shell; on Ubuntu this does not offer previous commands when pressing the <up>-arrow. If you want this useful “scroll back through previous commands” feature, you should switch npladm to use the tcsh shell instead (assuming you installed it). So to do this, as npladm, run the command:
Enter your (npladm) password when prompted, then when prompted for which login shell to use, type in:
Now logout of npladm (e.g. type “exit” and hit <Enter>), and then log back in, from now on npladm is using the tcsh-shell.
Now let’s execute the basic “healthcheck command” of sapcontrol utility, for the main instance (which is number: 00).
sapcontrol -nr 00 -function GetProcessList
This should show the 4 main processes (disp+work – Dispatcher, igswd_mt – IGS Watchdog, gwrd – Gateway; icman – ICM), and they should all have status “GREEN, Running”. If e.g. gwrd still “YELLOW, Starting” then rerun the sapcontrol query a few times, see if it is just a bit slow and getting started up.
If not all 4 instance 00 processes have status green, this can often be solved as follows (as npladm user):
stopsap ALL startsap ALL
Although many people use the Hypervisor’s “Suspend (Save State)” features, myself I usually stopsap ALL and shut down the VM, when I am finished using the SAP instance. But it is of course really up to you how you manage your VM and your SAP instance. If you do shutdown your VM, then after reboot, you probably need to always as first task, rerun the command:
sudo systemctl start uuidd
(Sometimes after rebooting I have forgotten to start uuidd, I suppose it may or may not corrupt your SAP system, though so far no crashes or glitches noticed after forgetfulness 🙂 ).
If you are using VirtualBox and NAT, then you can use Port Forwarding option to set up connectivity from host to Ubuntu VM for e.g. the SAPGUI protocol, RFC, HTTP, and HTTPS. See non-concise blog for an example. Other hypervisors, it should “just work”… anyway this is up to you to work out.
The non-concise blog also does not explain how to set up SAPGUI client for Windows, nor for Unix/Linux (Java). Once you have a SAPGUI client installed, then the connection details are:
Application server: <IPv4 address of Ubuntu VM OR host machine’s hosts file name e.g vhcalnplci>
System ID: NPL
Instance Number: 00
In SAPGUI for Java in expert mode, you might have a connection string that looks like:
where in this example Ubuntu VM is on NAT network at 172.16.106.135; 3200 is the port number where SAP instance 00 is listening for SAPGUI connections
Once you have worked out how to connect over SAPGUI, then you need to get a new (free) SAP license, to run your new SAP instance properly. Once you have the hardware key from tcode SLICENSE (client 000, login as user=SAP* – if “Appl1ance” does not work try “Down1oad”), you then go to:
You need the one for NPL on Sybase ASE. Fill in the form and a license file is generated and downloaded to your machine.
The “NPL.txt” file that you just downloaded, is what you then upload as the new license key into SLICENSE of client 000 – remember to delete the temp license BEFORE uploading the new one.
After that you can log in to client 001 as user=Developer. Password is the same as for the SAP* user.