The BOM won't indicate what files or folders were added, created, moved, or deleted by scripts. It also won't show what else has been done through scripts in the package — for example, I've seen installers which create users and groups. The BOM will only list what files and folders were directly bundled together into the package. Therefore, using this tip, you can only see what was intended to be installed as part of the package, minus whatever actions were taken by any of the scripts in that package.
The Installer technology in Mac OS X is outdated and unacceptable in 2007. Not having an Uninstall feature is but one of its faults. How about a Pre/Post script sandboxing API? There is simply NO reason that an installer script should have the full control over a system that a user holds, not by default. How about a System-maintained Install history? TimeMachine is great, but a rather 'dumb' technology.
Context is key! Unfortunately, Apple doesn't care about fixing this.
Os X Mavericks
Complaints about the Installer.app and its lack of feature-set have existed since 10.0, with no substantial changes. The fact that Windows provides, at least rudimentarly, a more robust solution is sad. Even Apple's pre-OS X installer tech was more full-featured. Apples new guidelines for Leopard is to deploy all applications via a Apple Installer, which has upset many devs just as much as users. In my applications i deploy them just as a simple zipped up application, which if not placed in the Applications folder will ask a 1 off question if you want to copy it to the Applications folder.
DMGs are also crap for deployment because it wastes bandwidth and devs time for nothing, because most apps are a single file and it could of just been in a nice archive.
Os X Mountain Lion
Open terminal (Applications - Utilities - Terminal) To remove JVM enter folowing: sudo rm -rf /System/Library/Java/JavaVirtualMachines/ Then, clean up the installer records by removing them from /private/var/db/receipts/: com.apple.pkg.JavaForMacOSX107.bom com.apple.pkg.JavaForMacOSX107.plist Now clear any traces of the Java installation from Software Update. What is nicotine.
Use this command in terminal for check the list of package and uninstalled your files. $ pkgutil -pkgs # list all installed packages Once you've uninstalled the files, you can remove the receipt with: $ sudo pkgutil -forget the-package-name.pkg After visually inspecting the list of files you can do something like: $ pkgutil -pkg-info the-package-name.pkg # check the location $ cd / # assuming the package is rooted at /.
$ pkgutil -only-files -files the-package-name.pkg tr ' n' ' 0' xargs -n 1 -0 sudo rm -i Be careful of this last step. The list of directories output by pkgutil -files can include important shared directories like usr, which you don't want to remove. $ pkgutil -only-dirs -files the-package-name.pkg tr ' n' ' 0' xargs -n 1 -0 sudo rm -ir Copied from. The concept of PKG uninstallation is not there in OS X. A PKG/MPKG can have certain pre install and post install scripts associated with that.
What is done in PKG scripts is always upto the PKG creator. As a layman we cannot go ahead and uninstall a PKG. But at the same time there are command lines that can do a complete reverse engineering on PKG files. It can extract the scripts and other related information.
The links given below will give you some info There are few uninstall/cleaner apps available on OS X. Most of them do a search in known directories (like /Library/Preferences, /Library/Application Support etc) with the app name/pkg name or bundle identifier. This is one way to do a complete removal. DMG are not installer files. They are Disk Image files.
It can inturn have.apps, pkg, mpkgs, other files etc. What gets installed is the installers inside DMG. DMG has to be mount to read the contents and un-mount when done. This link gives info on how to mount a DMG.
As a service to my users I would like to provide an uninstall script to completely remove all traces of my application on Mac OS X. The application is installed using a package rather than just being dragged into the Applications folder because it is a daemon-type app that also requires to run a script at installation to be launched. My thinking is to include a file called uninstall.sh and place it into /Library/Application Support/com./ and refer to this from the application documentation. The purpose is basically to stop the daemon if running, unload and delete the corresponding plist as well as remove any application files. Does this sound reasonable or are there better methods to accomplish this? Also I am wondering if it is good practice to also remove traces of the package using pkgutil -forget - if I don't do this, the next time the package is installed it shows up as being upgraded instead of installed. Any recommendations or pointers to best-practice information?
Is there no standard way of doing this on OS X? There is no standard way of doing this on OS X. Yes, shocking, I know. Apple consistently warns everyone away from package installers (among other things by providing insufficient documentation for them).
They then exclusively use package installers for their own standalone apps. Yes, you should include pkgutil -forget.
If your customers are comfortable with this kind of script, then your approach sounds fine. If they want a 'double-click-on-it' then you should probably put the uninstaller in /Applications, but avoid that if you can. If you have a GUI, Status Item, or Preference Panel, then it's nice to put a 'Uninstall' button or menu item there rather than requiring them to go mess around with Terminal. BTW, if you go looking for the Software Delivery Guide, it's been for a year or so now, while they 'update' it.
Your personal assistant has the solution for your technical problem - whether it is a minor annoyance or a catastrophic failure. Protect your Mac from phishing attacks, malware, spyware, adware, viruses and identity theft while you're using the Internet. If your Mac gets stolen, Anti-Theft will track its location and even make an iSight snapshot of the thief. Quickly remove junk files (such as temporary caches, logs, unused language packages and legacy application parts) that may take up hard drive space and slow down your Mac. Delete unnecessary copies of your files and free up disk space on your Mac. Geek on Demand is the ultimate tool when you have a problem or question that is related to your Mac's health and need an expert's opinion or technical assistance.
With Update Tracker you will never miss out any important security patches and upgrades for most of your applications. Backing up your important files and folders is an easy, fast and reliable way to keep them safe and secure. Now you can recover files that were once deleted from the Trash! Visualize the size of the folders on your hard drive so you can tell at a glance which folders are taking up the most space. Prevent future junk by making sure that you're not just sweeping old applications under the rug when you are trying to delete them.
Make your restricted files absolutely invisible to anyone without the right password, protecting even your most sensitive information. The easiest way to define which application will open each file type.
Securely delete files and folders that you don't ever want to be recovered. Quickly search for and find any lost or misplaced file, even if you don't know in which folder it is located. Sap control.xml file. Take control of how fast your Mac boots up by deciding which applications launch every time you start it. Automatically optimizes and monitors your Mac’s RAM memory while you are performing your daily tasks.
Comments are closed.
|
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |