6
Thank you for your review
$9 99
http://www.macupdate.com/download/48159/uninstallpkg_1.0.5.zip
Email me when discounted: 
UninstallPKG allows you to completely remove so called "packages" (file extension .pkg) and all their installed contents from your Mac. It can be used to reclaim precious disk space by removing unwanted functionality like unused printer drivers, or to completely remove applications you no longer use. UninstallPKG can also keep your Mac clean by removing left-over files from applications that you have already partially removed manually. It can remove all 37290 files of Office 2011 at once, or completely remove things like Java or the Flash plugin. It is also able to clean-up after uninstalling an application by removing it more...

What's New

Version 1.0.5:
  • Allow uninstallation of old packages from pre-OS X 10.6 (/Library/Receipts)
  • Allow uninstallation of local user packages (~/Library/Receipts)
  • Fixed uninstallation of packages containing locked files (e.g., CrashPlan)
  • Fixed problem where settings for removal of additional files would be ignored
  • Added more details to the log-files about additional removed more...

Requirements

  • OS X 10.8 or later

Similar Software

Open Comparison
Suggest Other Similar Software
Leave a Review

UninstallPKG User Discussion

Nobody has reviewed or commented on this app yet. Add your own comment and get a discussion going!
Sort by: Time | Smiles
hamletm3054 Member IconReview+0
hamletm3054
+0

great software!

Reply0 replies
Version 1.0.5
LeonBe;mont2070 Member IconReview+3
LeonBe;mont2070
+0

Here is my solution for uninstalling PKGs implemented in Python.
#!/usr/bin/env python2.7

import subprocess as subp
#import shutil
import sys, os
#import pdb

class Delpkg(object):
pkgInfoCommand = 'pkgutil --pkg-info "{pkgname}"'
pkgFilesCommand = 'pkgutil --files "{pkgname}" --only-files'
pkgDirsCommand = 'pkgutil --files "{pkgname}" --only-dirs'
def __init__(self,pkglist=[]):
self.pkgsInfo = {}
for i in pkglist:
pkgInfo = self.getPkgInfo(i)
if pkgInfo is not None:
self.pkgsInfo[i] = pkgInfo
def __call__(self):
if os.getuid() != 0:
for i in self.listFiles():
print i
for i in self.listDirs():
print i
else:
for i in self.listFiles():
try:
os.remove(i)
except OSError:
sys.stderr.write('Failed to remove "{0}"\n'.format(i))
for i in self.listDirs():
try:
os.rmdir(i)
except OSError:
sys.stderr.write('Failed to remove "{0}"\n'.format(i))
for i in self.pkgsInfo:
subp.call('pkgutil --forget "{0}"'.format(i),shell=True)

def getPkgInfo(self,pkgname):
runPkgInfoComm = subp.Popen(self.pkgInfoCommand.format(pkgname=pkgname),\
shell=True,stdout=subp.PIPE)
out = runPkgInfoComm.communicate()[0]
if runPkgInfoComm.returncode == 0:
pkgInfo = dict(i.split(': ') for i in out.rstrip().split('\n'))
pkgInfo['prefixpath'] = os.path.join(pkgInfo['volume'],pkgInfo['location'])
return pkgInfo
else:
return None

def generalListComm(self,command):
for i in self.pkgsInfo:
runComm = subp.Popen(command.format(pkgname=i),\
shell=True, stdout = subp.PIPE)
out = runComm.communicate()[0].rstrip().split('\n')
for j in out:
yield os.path.join(self.pkgsInfo[i]['prefixpath'],j)
def listDirs(self):
dirs = [ i for i in self.generalListComm(self.pkgDirsCommand) ]
dirs.sort(reverse=True)
for i in dirs:
yield i
def listFiles(self):
for i in self.generalListComm(self.pkgFilesCommand):
yield i

if __name__=='__main__':
delpkg = Delpkg(sys.argv[1:])
#pdb.set_trace()
delpkg()

Reply1 reply
Version 1.0.2
Corecode
+0

Nice script. upsides of UninstallPLG compared to the script: it takes extra care not to remove files needed by other packages and therefore is more save than other solutions and does other things like removing generated and left-over files not directly listed in the package. Also it now supports old style (pre 10.6 packages).

Ken420 Member IconComment+14
Ken420
+0

UninstallPKG 1.0.1 has no application icon.

Reply1 reply
Version 1.0.1
Ken420
+0

My mistake. There was something wrong with my machine that prevented the application icon from appearing properly.

Urick-Hunt Member IconReview+1
Urick-Hunt
+1

Awesome job! Very improved overall since the initial release. Thank you again for such a useful app.

Reply0 replies
Version 1.0b5
leamancrews Member IconComment+1
leamancrews
+0

Can someone explain the utility of this app? I don't understand the need or desire to remove .pkg files.

#1) The way I understand it, .pkg files are either installers, or receipts left by installers. The receipts are used by Software Update, et al, to determine what software you have installed (and what version) to help determine what updates you need. So is this app meant to remove installers you have laying around, or remove the .pkg receipts? If it's the latter, shouldn't you keep these files?

#2) What I would like is an application that read .pkg receipts to perform a complete uninstall of an application installed via a .pkg and Installer.app. Does this app do that? It doesn't seem to, but that's something that OS X could really use. (I don't know why it's not a function of Installer.app already.)

Thanks in advance.

Reply7 replies
Version 1.0b4
CoreCode (Developer)
+1

>What I would like is an application that read .pkg receipts to perform a complete uninstall of
>an application installed via a .pkg and Installer.app. Does this app do that?

of course it does do just that, anything else would be useless ;)

any ideas how to improve the description to better indicate it does just that would be welcome - although i'm not sure how the description could be confusing.

Mcr
+2

@CoreCode
With all due respect, your reply to leamancrews I don't think really cleared it up. Your description of the product is worded for 'Techies'. For lay people, and especially people familiar with Windows, the concept of an installer and the application installed by the installer is quite distinct, and typically when you delete the installer on Windows (which to laypeople I think that is what they see a package as, an installer), it does not delete the application installed by the installer.

Your app removes the package plus the application installed by the package (as I understand your reply)...I can easily see how to some people that is not clear, that they think it only just deletes the package files (i.e. the 'installer'). And certainly most laypeople don't understand what a package or receipt is, or its relationship to what they 'see' is the application.

Also on your website, you correctly and rightfully state that caution should be exercised when removing a package as it can have unexpected consequences. I think it might be good idea to have a similar warning here at the MacUpdate site, since it is possible to download your app directly from MAcUPdate and never visit your website, and there is no ReadMe in the zip file. A readme in the zip file would be useful, again advising caution, and frankly, stating that if you don't know what you are doing, you should think twice about using this app (worded politely of course, but in so many words).

Leamancrews, I suspect, is thinking along the lines of something like AppDelete or AppCleaner. It definitely is not clear to me, and I'm a technical person, that your app, even if it removes the application .app file, also clears out things like Preference plist files, Application Support folders. launch daemons, etc and all those other bits and pieces. If it does, great, say so in the description.

Again, I am not criticizing you or your application, I'm sure it is a fine app. Just saying that try to view how your description would be interpreted by someone less technical, especially someone coming from the Windows world, where the install program and the program it installs are very separate and distinct, where deleting the installer (e.g. remove the 'package') doesn't remove the application it was used to install.

In the description at the top of this MacUpdate page, it says "Remove PKG files", it does not say, "Remove PKG files AND the application installed by the PKG".

You asked for suggestions how to make the description more clear. As someone who's been making his living in technology and IT for over 30 years, I suggest the following (and not implying you haven't or don't do these things; I don't know):

1) Don't ask your tech friends or fellow developers to review your documentation, you are all techies and tend to view things through tech colored glasses, making sure everything is 'technically' correct. but not reviewing with an end user in mind. Ask a non developer or lay person to read your docs and ask them "After reading this, tell me what you think this software does or is intended for?" Look at the product description for AppDelete...my wife, who is very intelligent, but not a computer person, understands immediately what AppDelete does.

After 30 years, it still surprises me how many developers view end users or non technical people with a patronizing attitude.

2) Understand your intended audience, if your audience is techies and developers, then maybe it's okay your documentation reflect that, and then say so. If your audience may be lay people, then my #1 comment is definitely one to heed. Or at least in your docs, allow for the possibility that a layperson my look at this, and if nothing else say, hey if you don't understand what I mean by a package and what could happen when you remove it, you probably shouldn't use this. Go get AppDelete.

3) As a developer, who sells software commercially for money, treat the public respectfully. Every person you respond to is potentially a customer or already a customer, or someone who may recommend your product to another potential customer. It takes a lot to win a customer, it takes very little to lose one or turn them away.

I'm pretty sure you meant no ill will with your comment "of course it does do just that, anything else would be useless ;)", and yes, you had the little 'wink wink' emoticon at the end, but I can tell you from experience, there are people who after seeing that reply would not give you a second thought, even if the product or service you provide is exactly what they are looking for.

Thanks and good luck to you in your endeavors.

CoreCode (Developer)
+0

> Your description of the product is worded for 'Techies'

we believe that currently this is a "good idea". removing packages can be a dangerous thing if you don't know what you are doing and accidentally remove packages of things you still want to use. also, the app is still in beta-testing so it really should only be *tested* by techies.


> I can easily see how to some people that is not clear,
> that they think it only just deletes the package files (i.e. the 'installer').

we believed that the "and all their contents" in the description made it clear that not only the package-receipts but also the contents installed by the application are removed, but it seems like further improved wording is necessary.


> I think it might be good idea to have a similar warning here at the MacUpdate site,
> since it is possible to download your app directly from

there are many in-app warnings before proceeding to un-install a package.


> A readme in the zip file would be useful, again advising caution, and frankly,
> stating that if you don't know what you are doing, you should think twice about using this app

there is a readme in the download but its embedded into the app package and availabe in-app by clicking the help button or from the help menu.
creating an alias to the readme is a good suggestion, thanks ;)


> It definitely is not clear to me, and I'm a technical person, that your app, even if it removes the application .app file,
> also clears out things like Preference plist files, Application Support folders.
> launch daemons, etc and all those other bits and pieces.

it currently does only delete what is specified in the package, i.e. what gets installed. preferences and other files created by the application after installaton are not currently removed but thats on the ToDo list. thanks, we'll make sure to update the description to mention these features once they get implemented.


> In the description at the top of this MacUpdate page, it says "Remove PKG files",
> it does not say, "Remove PKG files AND the application installed by the PKG".

thanks we've submitted an request to update the title. however we are prefering to talk about the "installed contents" of the package, because many/most packages are not corresponding to normal applications but to other things (browser plugins, x11, command-line tools, libraries, frameworks, drivers, etc etc). just talking about applications would be wrong.


> As someone who's been making his living in technology and IT for over 30 years, I suggest the following

thanks for your feedback!

Bowlerboy_jmb
+0

My thanks to leamancrews for asking an intelligential, fundamental question that ought to be legitimately and thoroughly addressed the marketing communications arm of any software developer—big or small. And my tip of the cap especially to Mcr for taking the time to write a detailed and gentle whack-on-the-side-of-the-head lesson to the developer to give him a dose of reality about inadequate technical communications offered by the development community to their users.

That is an issue about which I have commented several times in several places on this website, almost invariably earning a "frown" for daring to point out the inadequacy of almost all technical and communications provided by developers and techie types, who, despite their in writing code, have absolutely no clue how to explain the benefits and values of their product to normal people.

Most developers respond to such feedback in their typical arrogant fashion, and there certainly a lot of that seeping through CoreCode defensiveness. But there are a few glimmers of light peeking through the cracks, too, so maybe some of what Mcr said actually penetrated someone developer's mind beyond the level of code-talk and into everyday language.

I used to work at the original Atari as a copywriter of video game instruction manuals and packaging copy, and if the very talented programmers of those primitive games had their way, they would have all written their own manuals and advertising copy—a demand which, if the Atari execs catered to their often infantile emotional states, would have resulted in no one ever buying a video game, no mater how well it might have been designed. It is sad to discover over and over that today's software developers seem bound and determined to ignore the lessons of their own industry and delude themselves into thinking that, because they can write code, they must be the best person to also write the technical and marketing communications. That is a false premise supported with plenty of evidence to indicate that such people are just plain wrong. Whether they are smart enough to learn the lessons, or too arrogant to let the message sink in, is the only issue facing them now.

Corecode
+0

thanks to leamancrews for asking a legitimate question that reveals a need to improve the product description.

thanks also to mcr and bowlerboy_jmb for suggesting improvements to our customer communications. we can certainly improve a lot in this area, as could most small IT companies that can't afford a separate customer relationship department. we are sorry for any deficiencies in this area and are working on improvements.

anyway, we still stand by our initial assertion which all of you ignored. we consider it a good think if the product name and description only appeals to "techies". although we spent a great deal of effort to make UninstallPKG to be as easy to use and especially as *safe* as possible, there still the undeniable possibility that you can completely screw up your system if you do some things like removing essential packages (which we try to make very hard). we want only techies that know what they are doing to buy UninstallPKG because we'd rather have a few happy customers than a lot of angry ones. of course we have other products where the situation is different.

leamancrews
+0

CoreCode, thank you for your reply after I posted the initial question quite a few months ago. I certainly didn't mean to start a firestorm of criticism! But it is true, the wording at the time did not make it clear that the app did what I thought it should do (remove apps installed via .pkg files in Installer.app).

I have learned not to assume anything. As you point out, anything else would be useless. But there are quite a few apps available on MacUpdate that promise to clear up space on your hard drive, by removing localizations and binaries for other architectures. Of course, these files do not take up very much space in the grand scheme of things, and I just wanted to make sure this app was not another one of those types of apps.

Thanks for the discussion, and thanks for the app. I still think Installer.app not having this feature is a glaring omission in OS X.

<start rant not necessarily related to this app or thread>
It's sad to say, but Windows is better in this regard, as you can go to Add/Remove Programs (or whatever the equivalent is these days, I don't keep up with Windows) and remove an app installed via the Windows Installer program. And all Linux package managers have the facility to remove a program installed via the same package manager.

Part of the problem -- and I suppose this is equally true of Windows and Linux -- is that there are too many ways to install apps in OS X. We've always had the option of .pkg files, apps that are compressed (.zip, .tar.gz, .bz2, etc.), or delivered via .dmg. Now we also have the App Store, as another way an app can be installed. I wish everything was installed via Installer.app, and was also removed the same way.
</end rant>

Corecode
+0

>Part of the problem -- and I suppose this is equally true of Windows and
>Linux -- is that there are too many ways to install apps in OS X. We've
> always had the option of .pkg files, apps that are compressed
> (.zip, .tar.gz, .bz2, etc.), or delivered via .dmg.
> Now we also have the App Store, as another way an app can be installed.
> I wish everything was installed via Installer.app,
>and was also removed the same way.

however, MacAppStore apps and "normal" apps are same in principle, they are self-contained and can be removed by dragging them to the trash (except for a few generated files - which can be removed with 'cleaning' apps if they are a concern).
the other option are normal packages and custom installers. luckily custom installers are quite rare these days and even packages are becoming rare these days. there is definitely less need now for UninstallPKG than 5 or even 10 years ago (there were a lot of packages these days).

yes a unified solution would be nice and i guess thats what Apple is attempting with the Mac App Store, but given the constraints it has it will never be the only option.

Aargl Member IconComment+354
Aargl
+2

So sad there's no 10.6 version... :-(

Reply0 replies
Version 1.0b3
Urick-Hunt Member IconReview+1
Urick-Hunt
+0

A much needed utility on OS X.
Thank you )
A built in option to launch as root might help for some users...

Reply8 replies
Version 1.0b2
CoreCode (Developer)
+0

>A much needed utility on OS X.

thanks ;)


>A built in option to launch as root might help for some users...

can you elaborate? UninstallPKG seems to work fine just as well with "standard" user accounts as it does with "admin" accounts.

Urick-Hunt
+0

In order to remove a few packages I needed to use LaunchAsRoot https://www.macupdate.com/app/mac/38617/launchasroot
But yes for most packages the default was sufficient.
Again very nice work indeed )

CoreCode (Developer)
+0

thanks again ;)

if you tell me which packages aren't uninstall-able without LaunchAsRoot, i'll have a look

Urick-Hunt
+0

FreePascal required LaunchAsRoot to remove
http://www.freepascal.org/
As well as Clover EFI bootloader however this wouldn't be an issue for most Mac users for obvious reasons )
http://cloverefiboot.sourceforge.net/

CoreCode (Developer)
+0

thanks, its on the todo list for the next release

Dokter_mac
+0

Aren't those the files that disk utility needs when you have to repair permissions? If so, be carefully and only remove the pkg files from apps that you have removed.

Sincerely.

CoreCode (Developer)
+1

>Aren't those the files that disk utility needs when you have to repair permissions?

UninstallPKG doesn't allow you to remove system packages by default.


>If so, be carefully and only remove the pkg files from apps that you have removed.

1.) the whole point is to remove apps you no longer want/use and not something you still need ;)
2.) removing the app manually is unnecessary since UninstallPKG will remove all files from the package anyway.

CoreCode (Developer)
+0

uninstallation of CloverEFI / FreePascal and all other previously problematic packages should now work in beta4.

HansMueller4641 Member IconReview+3
HansMueller4641
+1

finally a WORKING pkg remover ... seems to work fine although its supposedly beta quality

Reply0 replies
Version 1.0b1
user icon+0
marcfrederick
Version 1.0b5
> 5 6

Ratings

Overall
(6)
Current Version (1.x)
(6)

Details

Downloads 6,419
Version Downloads 1,229
Type Utilities / System
License Shareware
Date 07 Apr 2014
Platform Intel 64 / OS X
Price $9.99
Learn how MacUpdate Desktop makes installing apps from MacUpdate.com one-click easy.
Next time, install UninstallPKG with 1-click

Learn how MacUpdate Desktop can install apps on MacUpdate with the simple click of the Install apps with MacUpdate Desktop icon. Plus, keep all your apps updated. Play video...