I'm trying to modify an existing script that updates Flash but the installer will not work.
I keep getting the following error.
installer: Error the package path specified was invalid: '/Volumes/Flash Player/Install Adobe Flash Player.app/Contents/MacOS/Adobe Flash Player Install Manager'.
It also does not work if I modify it to say include.pkg at the end of the filepath.
Here is the rest of the script:
#!/bin/sh
# Script to download and install Flash Player.
# Only works on Intel systems.
#
dmgfile="flash.dmg"
volname="Flash"
logfile="FlashUpdateScript.log"
echo "Updating Flash player…"
# Are we running on Intel?
if [ '`/usr/bin/uname -p`'="i386" -o '`/usr/bin/uname -p`'="x86_64" ]; then
# Get the latest version of Flash Player available from Adobe's About Flash page.
latestver=`/usr/bin/curl -s http://www.adobe.com/software/flash/about/ | sed -n '/Safari/,/<\/tr/s/[^>]*>\([0-9].*\)<.*/\1/p'`
# Get the version number of the currently-installed Flash Player, if any.
if [ -e "/Library/Internet Plug-Ins/Flash Player.plugin" ]; then
currentinstalledver=`/usr/bin/defaults read /Library/Internet\ Plug-Ins/Flash\ Player.plugin/Contents/version CFBundleShortVersionString`
else
currentinstalledver="none"
fi
echo "Installed version: $currentinstalledver"
echo "Currently last version to install: $latestver"
# Compare the two versions, if they are different of Flash is not present then download and install the new version.
if [ "${currentinstalledver}" != "${latestver}" ]; then
echo "UPDATING…"
/bin/echo "`date`: Current Flash version: ${currentinstalledver}" >> ${logfile}
/bin/echo "`date`: Available Flash version: ${latestver}" >> ${logfile}
/bin/echo "`date`: Downloading newer version." >> ${logfile}
/usr/bin/curl http://fpdownload.macromedia.com/pub/flashplayer/latest/help/install_flash_player_osx.dmg -o flash.dmg
/bin/echo "`date`: Mounting installer disk image." >> ${logfile}
/usr/bin/hdiutil detach $(/bin/df | /usr/bin/grep Flash | awk '{print $1}') -quiet
/usr/bin/hdiutil attach flash.dmg -nobrowse -quiet
/bin/echo "`date`: Installing..." >> ${logfile}
/usr/sbin/installer -pkg /Volumes/Flash\ Player/Install\ Adobe\ Flash\ Player.app/Contents/MacOS/Adobe\ Flash\ Player\ Install\ Manager -target /
/bin/sleep 10
/bin/echo "`date`: Unmounting installer disk image." >> ${logfile}
/usr/bin/hdiutil detach $(/bin/df | /usr/bin/grep ${volname} | awk '{print $1}') -quiet
/bin/sleep 10
/bin/echo "`date`: Deleting disk image." >> ${logfile}
/bin/rm ${dmgfile}
newlyinstalledver=`/usr/bin/defaults read /Library/Internet\ Plug-Ins/Flash\ Player.plugin/Contents/version CFBundleShortVersionString`
if [ "${latestver}" = "${newlyinstalledver}" ]; then
/bin/echo "`date`: SUCCESS: Flash has been updated to version ${newlyinstalledver}" >> ${logfile}
echo "SUCCESS: Flash has been updated to version ${newlyinstalledver}"
else
/bin/echo "`date`: ERROR: Flash update unsuccessful, version remains at ${currentinstalledver}." >> ${logfile}
/bin/echo "--" >> ${logfile}
echo "ERROR: Flash update unsuccessful, version remains at ${currentinstalledver}."
fi
# If Flash is up to date already, just log it and exit.
else
/bin/echo "`date`: Flash is already up to date, running ${currentinstalledver}." >> ${logfile}
/bin/echo "--" >> ${logfile}
echo "Flash is already up to date, running ${currentinstalledver}."
fi
else
/bin/echo "`date`: ERROR: This script is for Intel Macs only." >> ${logfile}
echo "ERROR: This script is for Intel Macs only."
fi
You need to confirm that each segment of the path has permissions that would allow you to write to that directory and any below it. Save the following script into a directory in your PATH (
/usr/local/bin
would be appropriate) OR save it into the/tmp
dir and use it with a full path.Should show listings like
Edit Also see a more generic explanation of the problem here:
How to solve Insecure world writable dir /usr in PATH,mode 040777 warning on Ruby?
IHTH