SPSS 24 Deployment

Randydid
Contributor II

Hello JN,

I attempted packing SPSS 23 about a year or so ago. I was successful in capturing a snapshot that worked great on the machine I built it on. But as explained here ftp://public.dhe.ibm.com/software/analytics/spss/documentation/statistics/24.0/en/client/InstallationDocuments/MacOS/Authorized_User_License_Installation_Instructions.pdf] the licensing bits are tied to hardware so once I deployed to another Mac, it was borked.

SPSS packaging and installation information here on JN is sparse. Can someone share their workflow/methodology?

Thanks in advance,

/randy

2 ACCEPTED SOLUTIONS

dcgagne
Contributor

@Randydid There are a couple methods we have used to install SPSS. Both are predicated on having a site license, so YMMV

Option 1) If you can get your hands on the silent installer, you can create a policy with the required Java version, an SPSS payload (typically a DMG to add the installer.preferences and SPSS_Statistics_installer.bin to a temp folder), and a script to execute the silent installer and point to the installer.properties file to authorize the software and remove the temp directory. An example script is below.

#! /bin/sh
#Silent Install using information in the installer.properties file, outputs any errors to null
/Library/Application Support/SPSS24-Temp/SPSS_Statistics_Installer.bin -f /Library/Application Support/SPSS24-Temp/installer.properties > /dev/null 2>&1

#Firewall exceptions
/usr/libexec/ApplicationFirewall/socketfilterfw --unblockapp /Applications/IBM/SPSS/Statistics/24/SPSSStatistics.app
/usr/libexec/ApplicationFirewall/socketfilterfw --add /Applications/IBM/SPSS/Statistics/24/SPSSStatistics.app

#Cleanup
rm -r /Library/Application Support/SPSS24-Temp

Option 2) Capture the SPSS application using a Composer snapshot and remove any preferences (including the authorization code!). Then create a policy to install the required Java version, install the package, and then execute a script to authorize the software as seen below:

#!/bin/bash

#some commands to add firewall exceptions
/usr/libexec/ApplicationFirewall/socketfilterfw --unblockapp /Applications/IBM/SPSS/Statistics/24/SPSSStatistics.app
/usr/libexec/ApplicationFirewall/socketfilterfw --add /Applications/IBM/SPSS/Statistics/24/SPSSStatistics.app

#Enters the license key for activation
cd /Applications/IBM/SPSS/Statistics/23/SPSSStatistics.app/Contents/bin/
./licenseactivator THISISYOURAUTHORIZATIONKEY PROXYHOST=proxy-hostname PROXYPORT=proxy-port-number PROXYUSER=proxy-userid PROXYPASS=proxy-password

@mpermann Linked to a thread that contains most of this information. I prefer the silent installer method because it's the supported method from IBM.

And FYI, SPSS 24 can use the latest JDK from Oracle. You won't need the legacy Java installer from apple.

View solution in original post

stevevalle
Contributor III

We have two different installs of SPSS. One for laptops and another for desktops. Desktops are directed to our license server, laptops have the authcode inserted.

I captured the install of SPSS using composer, then use the following script to activate (laptops) after installation.

authcode="xxxxxxxxxxxx"

installLocation=/Applications/IBM/SPSS/Statistics/24/
cd $installLocation/SPSSStatistics.app/Contents/bin/
java -jar licenseactivator.jar CONSOLEMODE codes="$authcode" proxyport=80 proxyhost=lm.spss.com

View solution in original post

18 REPLIES 18

mpermann
Valued Contributor II

@Randydid have a look at this thread. I've not tried it personally though.

koszyczj
New Contributor III

SPSS licensing creates a locking code based on hardware so you cannot (at least I've never been able to capture an install that is licensed and have it work on another computer). If you look at the thread that @mpermann referenced that will give you the commands. Also be aware that you may need legacy java prior to the install https://support.apple.com/kb/DL1572?locale=en_US

You can also reference this post

dcgagne
Contributor

@Randydid There are a couple methods we have used to install SPSS. Both are predicated on having a site license, so YMMV

Option 1) If you can get your hands on the silent installer, you can create a policy with the required Java version, an SPSS payload (typically a DMG to add the installer.preferences and SPSS_Statistics_installer.bin to a temp folder), and a script to execute the silent installer and point to the installer.properties file to authorize the software and remove the temp directory. An example script is below.

#! /bin/sh
#Silent Install using information in the installer.properties file, outputs any errors to null
/Library/Application Support/SPSS24-Temp/SPSS_Statistics_Installer.bin -f /Library/Application Support/SPSS24-Temp/installer.properties > /dev/null 2>&1

#Firewall exceptions
/usr/libexec/ApplicationFirewall/socketfilterfw --unblockapp /Applications/IBM/SPSS/Statistics/24/SPSSStatistics.app
/usr/libexec/ApplicationFirewall/socketfilterfw --add /Applications/IBM/SPSS/Statistics/24/SPSSStatistics.app

#Cleanup
rm -r /Library/Application Support/SPSS24-Temp

Option 2) Capture the SPSS application using a Composer snapshot and remove any preferences (including the authorization code!). Then create a policy to install the required Java version, install the package, and then execute a script to authorize the software as seen below:

#!/bin/bash

#some commands to add firewall exceptions
/usr/libexec/ApplicationFirewall/socketfilterfw --unblockapp /Applications/IBM/SPSS/Statistics/24/SPSSStatistics.app
/usr/libexec/ApplicationFirewall/socketfilterfw --add /Applications/IBM/SPSS/Statistics/24/SPSSStatistics.app

#Enters the license key for activation
cd /Applications/IBM/SPSS/Statistics/23/SPSSStatistics.app/Contents/bin/
./licenseactivator THISISYOURAUTHORIZATIONKEY PROXYHOST=proxy-hostname PROXYPORT=proxy-port-number PROXYUSER=proxy-userid PROXYPASS=proxy-password

@mpermann Linked to a thread that contains most of this information. I prefer the silent installer method because it's the supported method from IBM.

And FYI, SPSS 24 can use the latest JDK from Oracle. You won't need the legacy Java installer from apple.

Randydid
Contributor II

Thanks everyone. Good points to start from. @dcgagne We have a site volume license but no server-we just enter the license code manually in the Licensing Wizard. I have it packaged using option #2 above (will try and tackle silent install later when I have the time). One question, if we are not using a licensing server, I would think that the command on the final line should read ./licenseactivator THISISYOURAUTHORIZATIONKEY I put that into a script and made a policy/made it avail. in Self Service but no luck. Latest java is installed.

I am almost there!

/randy

Look
Valued Contributor III

For what it's worth this is the script I am using for post activation of SPSS 23, it may accept version 24 and a valid code if not too much has changed.

#!/bin/sh
SPSS_Ver=$4
Act_Code=$5

if [[ "$SPSS_Ver" ]] && [[ "$Act_Code" ]] && [[ -d "/Applications/IBM/SPSS/Statistics/$SPSS_Ver/SPSSStatistics.app/Contents/bin" ]]; then
cd "/Applications/IBM/SPSS/Statistics/$SPSS_Ver/SPSSStatistics.app/Contents/bin"
java -jar "/Applications/IBM/SPSS/Statistics/$SPSS_Ver/SPSSStatistics.app/Contents/bin/licenseactivator.jar" SILENTMODE CODES=$Act_Code
else
echo "Invalid parameters or specified SPSS version not present"
fi

stevevalle
Contributor III

We have two different installs of SPSS. One for laptops and another for desktops. Desktops are directed to our license server, laptops have the authcode inserted.

I captured the install of SPSS using composer, then use the following script to activate (laptops) after installation.

authcode="xxxxxxxxxxxx"

installLocation=/Applications/IBM/SPSS/Statistics/24/
cd $installLocation/SPSSStatistics.app/Contents/bin/
java -jar licenseactivator.jar CONSOLEMODE codes="$authcode" proxyport=80 proxyhost=lm.spss.com

Look
Valued Contributor III

@stevevalle pretty much exactly what we do as well. The laptop installation is the desktop installation plus the activation.

dcgagne
Contributor

@Randydid

One question, if we are not using a licensing server, I would think that the command on the final line should read ./licenseactivator THISISYOURAUTHORIZATIONKEY I put that into a script and made a policy/made it avail. in Self Service but no luck. Latest java is installed.

That should work, but I've only ever used it with the script I posted which seemed to work every time. And we don't use a server either, strictly a single auth code for every user.

With that said, definitely get your hands on the silent installer. With that all you need to do is plug your authorization key into the installer.preferences file and it takes care of itself.

Randydid
Contributor II

Thanks, everyone. I used Option 2 from @dcgagne and the script noted from @stevevalle and adapted to my environment. I have tested and I am up and running. This saved my team literally hours of time installing and /or serializing SPSS24. JAMFNATION is a great resource. I am looking forward to JNUC2016-see you all there.

/randy

vmiller
New Contributor II

I tired of the bugs in SPSS's silent installer, so I repackage it. Within the bin folder of the application bundle, there is a script named licsilent.sh This script gave me the basis for the postinstall script that activates SPSS 24 for me. Here is my postinstall : https://gist.github.com/vmiller/4331ad8be60121c9340632208fc538e3 Note that it uses the Java bundled with SPSS so no system java needs to be installed.

kturnbeaugh
New Contributor III

@vmiller you may want to remove your auth code from your script on github.

vmiller
New Contributor II

Doh! Thanks for that. I replaced the gist with a sanitized version.

nicklaird
New Contributor

Hey all, I was wondering if anyone could help me with an issue I'm having. I followed the steps I saw in this thread and it was super helpful, so thank you, but I'm getting an error message on certain machines trying to install SPSS 24 from Self Service. I created a policy that installs Java 6, then installs SPSS 24, and then runs the script that stevevalle provided with our auth code. It works perfectly on some machines, but on other machines, Self Service says it failed to install, and when I look in the logs, I see that it successfully installed Java and SPSS, but is failing on the script and throwing the error:

Script exit code: 1
Script result: Exception in thread "main" java.lang.UnsupportedClassVersionError: com/law/panels/Main : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:637)
at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
Error running script: return code was 1.

From what I've read I am gathering that it may be caused by someone already having a later version of Java installed, but I am not sure, and don't know how I would get around it if that is the issue. Can anyone provide any guidance? Thanks!

stevevalle
Contributor III

I would assume from the looks of your error that the Macs are running a newer version than you are trying to install.

We deploy the Java JDK 8 (Update 112) with SPSS.

nigelg
Contributor

The SPSS 24 interactive installer places a JRE inside the SPSS application folder which can be used for activation if the script is run from the correct location but I haven't been able to capture the results of the interactive installer successfully with Composer. I would prefer using the installed JRE to packaging the software with a version of java as this is for BYOD rather than office based macs. Anyone else had similar experiences?

farverk
New Contributor III

@stevevalle Do you mind posting your script for your desktops that are pushing to a license server instead of using Auth codes? We currently only use a license server and I can't seem to find the commands to license to it after installation.

stevevalle
Contributor III

@farverk There is no script for machines that connect to a license server.

There is a file called spssprod.inf in the application itself (right click on the SPSS app and show contents). In the bin folder, open the spssprod.inf file. The file for our deployment looks like this:

[Language]
SPSSLanguage=en
[Product]
CommonRoot=/Applications/IBM/SPSS/Statistics/25/SPSSStatistics.app/Contents/common
StartJVMAtStartup=no
CustomerName=root
VersionMinor=0
VersionPatch=0
Version=25.0.0.0
DaemonHost=license-server-address
LicenseVersion=7
Organization=
PreferencesRoot=Statistics
ProductName=IBM SPSS Statistics 25
ProductNickName=IBM SPSS Statistics
VersionMajor=25
FeatureCode=1200
Copyright=Copyright (c) IBM Corp. 1989, 2017.
CommuterMaxLife=
KCURL=https://www.ibm.com/support/knowledgecenter/SSLVMB_25.0.0

Note the DaemonHost line has the server address.

We deploy this file to desktop Macs only. Laptops use the script to activate.

Hope this helps!

Duke78
New Contributor III

When running the silent installer plan for SPSS 25, which lines do you modify in installer.properties?