Advice for Endnote, SPSS and MATLAB

928 views
Skip to first unread message

John Staplehurst

unread,
Oct 24, 2012, 10:47:45 AM10/24/12
to munk...@googlegroups.com
Any advice on deploying and/or packaging the following for munki:
 - Endnote X6 (volume licensed)
 - SPSS 20 (site licence)
 - MATLAB (TAH site licence)
I can almost get these to work, but my solutions are not complete, and a little ugly…

All help appreciated!
---john---

A.E. van Bochoven

unread,
Oct 24, 2012, 12:05:00 PM10/24/12
to munk...@googlegroups.com
For SPSS I copy the silent installer to /var, create a installer.properties file next to it and run the silent installer (which is actually not very silent)
afterwards I clean up /var

See http://pastebin.com/qsnJ8qY0

Replace your_auth_code with the appropriate auth_code
and your_company with your company name

grz

Arjen

A.E. van Bochoven

unread,
Oct 24, 2012, 12:18:53 PM10/24/12
to munk...@googlegroups.com
For MATLAB, I copy the Application to /Applications and add the network license file:

/Applications/MATLAB_R2009a.app/licenses/network.lic

which contains the following:

SERVER license.server.host ANY 27002
USE_SERVER

hth

Arjen

On 24 okt. 2012, at 16:47, John Staplehurst <jo...@macanics.com> wrote:

Hannes Juutilainen

unread,
Oct 24, 2012, 2:05:20 PM10/24/12
to munk...@googlegroups.com
I use exactly the same strategy for Matlab 2011 and 2012. We're installing the network.lic as a separate package (as an "update_for" for the actual matlab package) to allow easy changes to the license server only.

--
Hannes

John Staplehurst

unread,
Oct 24, 2012, 6:24:02 PM10/24/12
to munk...@googlegroups.com
Arjen, Hannes: Thanks for that MATLAB info, sounds good. Are you capturing the app from a fresh install? I had assumed the MATLAB installer plastered files all over the place, but if it's so nicely contained that's great news. With the update_for strategy, do you package a separate licence for different versions, or could one licence package target more than 1 MATLAB install? (Reason: need up-to-date 64-bit ML plus a 32-bit ML to run older toolboxes)

Arjen: SPSS script looks much the way I do it for SPSS 19 (although I copy an already created installer.properties), except for the permissions fix. Is that a new
step with v20? I also differentiate a licence for laptops (uses the site version) and desktops (uses the network version)

thanks for the help.
Anyone tried Endnote yet, and the CWYW plugins for Word?

---john---

Gregory Neagle

unread,
Oct 24, 2012, 6:27:21 PM10/24/12
to munk...@googlegroups.com
Have you seen this discussion? https://groups.google.com/d/topic/munki-dev/7ppmH9Hav4o/discussion

-Greg

>
> ---john---

Hannes Juutilainen

unread,
Oct 25, 2012, 8:56:45 AM10/25/12
to munk...@googlegroups.com

On 25.10.2012, at 1.24, John Staplehurst <jo...@macanics.com> wrote:

> Arjen, Hannes: Thanks for that MATLAB info, sounds good. Are you capturing the app from a fresh install? I had assumed the MATLAB installer plastered files all over the place, but if it's so nicely contained that's great news. With the update_for strategy, do you package a separate licence for different versions, or could one licence package target more than 1 MATLAB install? (Reason: need up-to-date 64-bit ML plus a 32-bit ML to run older toolboxes)

Yes, capturing from a fresh install and just copying the whole application bundle. I was a bit skeptical about this too before trying but it seems that everything is contained within the .app bundle.

For the license I have separate pkginfos for each Matlab version. This is because we install Matlab with the default name and that means each version of Matlab has a different name (for example /Applications/MATLAB_R2012a.app). The license file itself is same for all as the license server supports all the versions we have. The end user might have a few different versions of Matlab installed and all of the versions get their own license file installed in /Applications/<MATLAB_SOMETHING>.app/licenses/network.lic


--
Hannes

John Staplehurst

unread,
Nov 8, 2012, 11:41:06 AM11/8/12
to munk...@googlegroups.com
I'm trying to understand how this pkginfo file was generated. I can understand and appreciate the structure, but I'm now trying to produce a similar file for SPSS 21 (since IBM will not qualify SPSS20 for Mountain Lion…). Running munkiimport or makepkginfo fails as the installation item is a .bin file, and not a munki-recognised installation type. Can you reveal how you packaged the installer up, or gathered the required data to hand-edit the pkginfo file?
cheers,
---john---

Per Olofsson

unread,
Nov 9, 2012, 3:54:51 AM11/9/12
to <munki-dev@googlegroups.com>
8 nov 2012 kl. 17:41 skrev John Staplehurst:

> I'm trying to understand how this pkginfo file was generated. I can understand and appreciate the structure, but I'm now trying to produce a similar file for SPSS 21 (since IBM will not qualify SPSS20 for Mountain Lion…). Running munkiimport or makepkginfo fails as the installation item is a .bin file, and not a munki-recognised installation type. Can you reveal how you packaged the installer up, or gathered the required data to hand-edit the pkginfo file?


You should munkiimport the (unmounted) dmg file, not the installer binary. You will need to supply the proper arguments to generate the items_to_copy and postinstall_script, or hand edit the pkginfo afterwards.

--
Per Olofsson, IT-service, University of Gothenburg

John Staplehurst

unread,
Nov 9, 2012, 10:54:57 AM11/9/12
to munk...@googlegroups.com
I tried to import the unmounted dmg and got the following:

morbo:local jastaple$ munkiimport /Volumes/Mac-Install/SPSS/SPSS\ 21/SPSS_Statistics_21_mac_silent.dmg 
Could not find a supported installer item in /Volumes/Mac-Install/SPSS/SPSS 21/SPSS_Statistics_21_mac_silent.dmg!
Getting package info failed.

SPSS_Statistics_21_mac_silent.dmg contains the .bin installer

---john---

Nate Walck

unread,
Nov 9, 2012, 11:04:00 AM11/9/12
to munk...@googlegroups.com
Munki does not support .bin file installers. It supports Apple packages, drag and drop as well as a few others. Check the Munki wiki for details on what is specifically supported. 

Nate

Sent from my iPad

A.E. van Bochoven

unread,
Nov 9, 2012, 1:54:02 PM11/9/12
to munk...@googlegroups.com
Ok, I'll explain what I did:

create a postinstall script (postinstall.sh) with the following contents:

#!/bin/sh
USER_INSTALL_DIR="/Applications/SPSS 20/"
# Create installer.properties
cd /var
echo "INSTALLER_UI=silent
USER_INSTALL_DIR="$USER_INSTALL_DIR"
LICENSE_ACCEPTED=true
#For site license
site=1
AUTHCODE=your_auth_code
COMPANYNAME=your_company_name" > installer.properties

# Now we can install SPSS silently.
./SPSS_Statistics_Installer_Silent.bin -f installer.properties

# Fix permissions on root folder
chmod 755 "USER_INSTALL_DIR"

# Run license installer
/Applications/SPSS\ 20/SPSSStatistics.app/Contents/bin/licsilent.sh

# Clean up
rm SPSS_Statistics_Installer_Silent.bin
rm installer.properties

exit 0

then run:

munkiimport --item=SPSS_Statistics_Installer_Silent.bin --destination_path=/var --postinstall_script=postinstall.sh --pkgvers=1.0.0 path/to/spss.dmg

This will create a munki install that will copy the silent install.bin to /var, create a installer.properties file, run the installer.bin binary installer and clean up afterwards. For the other modifications to the pkginfo file see the previous mentioned pastie:

http://pastebin.com/qsnJ8qY0

If you want to know more about the munkiimport options, you can run makepkginfo --help (the wiki is a bit outdated at the moment)

hth

Arjen

Marnin Goldberg

unread,
Dec 4, 2012, 2:47:08 PM12/4/12
to munk...@googlegroups.com
I tried this and found it worked. I made the following changes b/c we
run SPSS with a network license:

Removed:
#For site license
site=1
AUTHCODE=your_auth_code

Added:
#For network license
network=1
LSHOST=LicenseServerAddress


Marnin







Timothy Sutton

unread,
Mar 8, 2013, 4:20:55 PM3/8/13
to munk...@googlegroups.com
So, today I tried SPSS 21, with the silent installer and a network license type. It works, with the following caveats:


- It seems to ignore INSTALLER_UI and always sets it to 'gui'. I forced silent mode by adding '-i silent' to the command invocation

- I followed Arjen's example for the USER_INSTALL_DIR, but it seemed to not finish its install when I had quotes in this path. I discovered this by finding a directory called "/ inside the /tmp/install.dir.PID folder its installer created, which contained Applications/SPSS and so-on.

- It does not seem to work at the loginwindow, only when a user is logged in - as before there's a java GUI process spawned, 'com.zerog.lax.LAX'

Traceback:
Invocation of this Java Application has caused an InvocationTargetException. This application will now exit. (LAX)
Stack Trace:
java.lang.UnsatisfiedLinkError: apple.awt.CToolkit.init()V
at apple.awt.CToolkit.init(Native Method)
at apple.awt.CToolkit.<init>(CToolkit.java:134)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at java.lang.Class.newInstance0(Class.java:357)
at java.lang.Class.newInstance(Class.java:310)
at java.awt.Toolkit$2.run(Toolkit.java:859)
at java.security.AccessController.doPrivileged(Native Method)
at java.awt.Toolkit.getDefaultToolkit(Toolkit.java:826)
at com.apple.eio.FileManager.<clinit>(FileManager.java:39)
at com.apple.mrj.MRJPriv.findFolder(MRJPriv.java:208)
at com.apple.mrj.MRJFileUtils.findFolder(MRJFileUtils.java:171)
at ZeroGth.a(DashoA10*..)
at com.zerog.ia.installer.util.magicfolders.SystemMF.a(DashoA10*..)
at com.zerog.ia.installer.util.magicfolders.SystemMF.d(DashoA10*..)
at com.zerog.ia.installer.util.magicfolders.MagicFolder.initializeAllMagicFolderPaths(DashoA10*..)
at com.zerog.ia.installer.LifeCycleManager.o(DashoA10*..)
at com.zerog.ia.installer.LifeCycleManager.g(DashoA10*..)
at com.zerog.ia.installer.LifeCycleManager.b(DashoA10*..)
at com.zerog.ia.installer.LifeCycleManager.a(DashoA10*..)
at com.zerog.ia.installer.Main.main(DashoA10*..)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.zerog.lax.LAX.launch(DashoA10*..)
at com.zerog.lax.LAX.main(DashoA10*..)
This Application has Unexpectedly Quit: Invocation of this Java Application has caused an InvocationTargetException. This application will now exit. (LAX)



You can enable the debug mode by setting LAX_DEBUG=1, and actual useful debug output will be displayed (this was how I determined it was not taking the 'silent' install UI mode from the properties file.)

So, if the installer .bin and properties file are in /var, the following triggers a successful install with debug output, provided there's a user logged in:

cd /var
export LAX_DEBUG=1
./SPSS_Statistics_Installer.bin -i silent

I dropped the "-f install.properties" because it will by default look for this file in the same directory as the installer, and use it if it finds it.


Maybe there are some display-related prefs that could put LAX into a mode that will make it not expect a window server. But even if a user's logged in, the debug output reports "X display" as being not set, so I don't know if that's actually an issue.

You can also run strings against the installer .bin file, and be bored to tears by the 2500 lines of shell bootstrap code it uses before actually spawning the LAX installer.

I tried the usual launchctl bsexec trick, and also adding the following two parameters to the installer to no avail:

-Djava.awt.headless=true -Dis.headless=true

Tried some ideas here:
http://holistictendencies.wordpress.com/2011/10/13/truly-headless-awt-operation-on-macos-x

..also to no avail.

Hope this is useful for someone!

-Tim
Reply all
Reply to author
Forward
0 new messages