Posted on 07-20-2016 09:03 AM
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
Solved! Go to Solution.
Posted on 07-20-2016 01:15 PM
@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.
Posted on 07-20-2016 08:46 PM
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
Posted on 07-20-2016 09:17 AM
@Randydid have a look at this thread. I've not tried it personally though.
Posted on 07-20-2016 10:16 AM
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
Posted on 07-20-2016 01:15 PM
@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.
Posted on 07-20-2016 02:36 PM
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
Posted on 07-20-2016 06:11 PM
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
Posted on 07-20-2016 08:46 PM
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
Posted on 07-20-2016 08:50 PM
@stevevalle pretty much exactly what we do as well. The laptop installation is the desktop installation plus the activation.
Posted on 07-21-2016 03:39 AM
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.
Posted on 07-21-2016 09:47 AM
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
Posted on 07-21-2016 10:26 AM
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.
Posted on 07-22-2016 04:23 PM
@vmiller you may want to remove your auth code from your script on github.
Posted on 07-25-2016 04:33 AM
Doh! Thanks for that. I replaced the gist with a sanitized version.
Posted on 11-17-2016 08:26 AM
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!
Posted on 11-17-2016 01:41 PM
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.
Posted on 04-20-2017 01:25 AM
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?
Posted on 02-22-2018 07:08 AM
@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.
Posted on 02-23-2018 01:21 AM
@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!
Posted on 08-30-2018 01:12 PM
When running the silent installer plan for SPSS 25, which lines do you modify in installer.properties?