site_archiver@lists.apple.com Delivered-To: installer-dev@lists.apple.com Thread-index: Acvxl4O35yjl59GxSSuiEt0VeGqFHA== Thread-topic: installing in the user's home directory? Using Iceberg makes this easy. Either install files somewhere on your HD (like the user template located at /System/Library/User Template/English.lproj and inside there is the template of what gets copied to all new users. Lets say you want to install prefs for an application you are pushing out. Install the pref file at /System/Library/User Template/English.lproj/Library/Preferences then create a text file script that will copy that to all your users. Lets say the pref file is myapp.plist. ____ 8< snip ________ #!/bin/sh # get listing of /Users Directory # and set template locaton dirs=`ls /Users` template="/System/Library/User Template/English.lprog" # now do something for each entry for dir in $dirs do # exclude /Users/Shared if [ "$dirs" != "Shared" ]; then cp "$template/Library/Preferences/myapp.plist" "/Users/$dir/Library/Preferences" chown $dir:$dir "/Users/$dir/Library/Preferences/myapp.plist" chmod 700 "/Users/$dir/Library/Preferences/myapp.plist" fi done ______ 8< snip _______ Take this script and make it a postflight script. Iceberg will take care of naming it correctly and such for you. Now, if you simply want to make a quick package to copy stuff you can do this....Make a new dummy package and put the item you want to copy in the "Resources" section of Iceberg (Iceberg will add it to the Resources folder of your package for you). Then do a postflight script which is something like above... ____ 8< snip ________ #!/bin/sh # get listing of /Users Directory dirs=`ls /Users` # now do something for each entry for dir in $dirs do # exclude /Users/Shared if [ "$dirs" != "Shared" ]; then cp "$1/Contents/Resources/myapp.plist" "/Users/$dir/Library/Preferences" chown $dir:$dir "/Users/$dir/Library/Preferences/myapp.plist" chmod 700 "/Users/$dir/Library/Preferences/myapp.plist" fi done ______ 8< snip _______ the $1 indicates the path to the script and then follow the path to the Resources folder. The chown and chmod commands make sure the file has the correct owner and permissions. -Mike On Apr 2, 2011, at 2:56 AM, Colin Cornaby wrote:
This isn't really simple. You've got to install into a temp location, and then copy the file into place in the user directory with a script, and then use the script to fix the permissions (if you're nice, not simply setting the permissions to 777...)
It's been a bit so I don't recall offhand the trick I used to line up the permissions properly. It involved reading the permissions of the parent folder and copying them to the installed files. I'm sure someone else here can help you with that.
If you only need to support 10.5 and higher, I believe the 10.5 package format has an added feature that allows you to install into a home directory.
On Apr 2, 2011, at 12:40 AM, Rich Morin wrote:
I'm trying to use PackageMaker to create an installer that unpacks a directory tree into a sub-directory of the user's home directory.
I'd like the permissions and ownership to be "normal" (eg, allow the user to read and write files, but not everyone on the system). So, the usual advice about setting things to root/admin isn't really appropriate and I certainly don't want things to be set to MY uid on someone else's machine.
Suggestions?
-r -- http://www.cfcl.com/rdm Rich Morin http://www.cfcl.com/rdm/resume rdm@cfcl.com http://www.cfcl.com/rdm/weblog +1 650-873-7841
Software system design, development, and documentation _______________________________________________ Do not post admin requests to the list. They will be ignored. Installer-dev mailing list (Installer-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/installer-dev/colin.cornaby%40mac.com
This email sent to colin.cornaby@mac.com
_______________________________________________ Do not post admin requests to the list. They will be ignored. Installer-dev mailing list (Installer-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/installer-dev/perbix%40lmsd.org
This email sent to perbix@lmsd.org
_______________________________________________ Do not post admin requests to the list. They will be ignored. Installer-dev mailing list (Installer-dev@lists.apple.com) Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/installer-dev/site_archiver%40lists.a... This email sent to site_archiver@lists.apple.com