Why doesn't Apple implement something like "add/remove program", as Windows has?

Discussion in 'OS X El Capitan (10.11)' started by Dark Goob, Sep 29, 2015.

  1. Dark Goob macrumors regular

    Dark Goob

    Joined:
    Jun 6, 2007
    Location:
    Portland, OR
    #1
    Why doesn't Apple implement something like "add/remove program", as Windows has?

    I find it incredibly annoying that many programs install crap all over the drive, including hidden unix folders. Why can't the OS track this? I just don't understand.

    There should be an option to "hide non-third-party items" in the Finder so that you can easily see ONLY those items that are NOT a normal part of the system, including within the hidden Unix directories (if, like me, you're a developer and you end up installing stuff there too).

    I've requested this on Apple.com/feedback multiple times to no avail.

    I really miss the old days where the System Folder contained Extensions, Control Panels, and Startup Items—and that was literally the ONLY place that something could be that ate up your RAM or ran in the background. You could see a list of all 3rd-party things and the Extension Manager even let you deactivate a lot of the crap Apple puts into the OS that you might never use.

    I know a lot of Mac users who I'm sure would love to deactivate all "cloud"-related crap from their systems. It's pretty lame that Apple requires you to have that type of stuff on your computer whether or not you're using those features.
     
  2. psik macrumors 6502

    Joined:
    Aug 21, 2007
    #2
    Sorry and not to be rude to you but I hope they never ever do that - it introduces a useless step in the way - right now its much easier to drag app to the recycle bin which is the same thing as what windows uninstall does or if you are really concern of remnants code it right and use apps like app delete (by dragging them there) - but add/remove dedicated section is useless.
     
  3. ctg7w6 macrumors regular

    Joined:
    Oct 23, 2014
    #3
    I used to feel the same way as you, that it was awesome that I could just drag things to the trash to uninstall. Then, like the OP, I found out that a bunch of "uninstalled" apps still had files hanging around my hard drive. You yourself admit that this is true, and then advocate installing a third party solution to fix the problem. So... How could it not be better for Apple to implement it themselves (assuming they don't screw it up somehow)? I just don't understand your logic.

    1) Apple's solution is simple.
    2) Apple's solution does not fully work.
    3) Apple should not create a solution that does fully work.
    4) Install third-party software to fix the problem.
    5) What???
     
  4. bmac89 macrumors 6502a

    bmac89

    Joined:
    Aug 3, 2014
    #4
    I love the drag and drop to delete.

    Maybe when you empty the trash a message box could pop up to ask if you want to delete files associated to the app you have trashed (Yes/No), with the advanced option to view/manually delete some files. Although I doubt Apple would want to provide this option.

    Sometimes you may want to keep application support files or preferences.
    Personally I'm happy to just drag and drop or use third party app.
     
  5. fisherking macrumors 601

    fisherking

    Joined:
    Jul 16, 2010
    Location:
    ny somewhere
    #5
    slippery slope. let's say you want to uninstall an adobe app...that shares resources with another adobe app you want to keep. or...the uninstall sees that you installed java with your app, but another app needs it as well. back in the days of smaller hard drives, perhaps more worthwhile, but in the bigger picture, think it's good as is. besides, many apps HAVE their own uninstaller....
     
  6. beebarb macrumors 6502

    beebarb

    Joined:
    Sep 10, 2015
    #6
    Because of the simple fact that the vast majority of apps on OS X don't use installers.

    All that Add/Remove programs on Windows does, is launch the app's uninstaller program (it's just a UI to make uninstalls easier). Even Windows doesn't actually track what gets installed.

    When an installer is done, it registers the app's name in Add/Remove programs, with the command to run the uninstaller.

    I don't think you're aware of this, but the majority of Windows uninstall programs, don't remove every trace of the app.

    They only really remove what the installer had installed.
    Just like trashing an app on OS X, running an uninstaller on Windows leaves a lot of cruft, like preferences, caches, orphaned registry entries, and runtime libraries.
     
  7. aristobrat, Sep 29, 2015
    Last edited: Sep 29, 2015

    aristobrat macrumors G4

    Joined:
    Oct 14, 2005
    #7
    Edit: Crap, I started my reply before I saw beebarb's post, didn't mean to post pretty much the same points.
     
  8. psik macrumors 6502

    Joined:
    Aug 21, 2007
    #8
    I think the problem is so minor enough to be solved with a third app party in this case, a change around is not needed in mac's OS.

    And as others say windows uninstaller does nto actually remove all the files it leaves so much orphaned crap in the hard drive - so even for windows a third party app is needed, but for windows the uninsall process is even less efficient than m,ac's drag and drop to delete - i have yet to see an effectieve soln for this in windwos as CCleaner and such dont really do the job. Anyways while there is some problem here at least I don't think your solution is effective and will solve it.
     
  9. JohnDoe98 macrumors 68020

    Joined:
    May 1, 2009
    #9

    This is a non-issue. Let's say Apple did track which extra files were installed by all third-party apps outside of the application itself. When you go to delete that app, all that needs to be done is a simple check. If the file is associated with more than one app, leave it there and remove the app's association with those files. If those files are not associated with more than one app they can safely be deleted. Problem solved.

    I actually think this is a good idea. People are always worried about "clean installs", but if you simply delete all third-party apps you'd effectively have a clean install.
     
  10. leman macrumors 604

    Joined:
    Oct 14, 2008
    #10
    Because it is not necessary given how apps are installed in OS X. I agree though that the OS should detect the case when you delete an app and offer you to remove its support folders as well. But nothing more beyond that.

    Because its not so simple. And besides, you should request the devs of the apps you are using not use crappy coding practices and not create hidden unix folders. Adobe and Microsoft are particularly awful in that regards. Apple manages to pack an entire server infrastructure in a single app bundle, without needing to resort to any auxiliary directories. Adobe and Microsoft love to leave their crap everywhere in the system. This is not the fault of the OS but that of a developer. In fact, if a software you are installing comes as a pkg file, that should ring an alarm bell.
     
  11. SlCKB0Y, Sep 29, 2015
    Last edited: Sep 29, 2015

    SlCKB0Y macrumors 68040

    SlCKB0Y

    Joined:
    Feb 25, 2012
    Location:
    Sydney, Australia
    #11
    Why? with pkg files it is extremely easy to remove all the installed files. Pkg log every file they install.

    Eg.

    Code:
    MacBook-Pro:~ user$ pkgutil --pkgs
    com.apple.pkg.BaseSystemResources
    com.apple.pkg.CoreADI
    com.apple.pkg.CoreFP
    com.apple.pkg.CoreLSKDConfigData.8
    com.apple.pkg.CoreSuggestionsConfigData.14U2060
    com.apple.pkg.CoreSuggestionsConfigData.14U2063
    com.apple.pkg.Essentials
    com.apple.pkg.GatekeeperConfigData.14U2064
    com.apple.pkg.GatekeeperConfigData.14U2066
    com.apple.pkg.iTunesAccess
    com.apple.pkg.iTunesX
    com.apple.pkg.MobileDevice
    com.apple.pkg.MRT.14U2061
    com.apple.pkg.OSX1011IncompatibleAppList
    com.apple.pkg.update.os.10.11.1PublicBeta.15B17c
    com.apple.pkg.X11redirect
    com.apple.pkg.XProtectPlistConfigData.14U4029
    com.apple.pkg.XProtectPlistConfigData.14U4030
    com.apple.update.firmwareupdate
    com.blacey.SuperDuper!
    com.evernote.Evernote
    com.loaysetrak.Converter
    com.microsoft.rdc.mac
    com.pixelmatorteam.pixelmator
    com.treasurebox.gear
    com.wunderkinder.wunderlistdesktop
    cx.c3.theunarchiver
    net.openvpn.connect
    org.gpgtools.checkprivatekey.pkg
    org.gpgtools.gpgkeychain.pkg
    org.gpgtools.gpgpreferences.pkg
    org.gpgtools.gpgservices.pkg
    org.gpgtools.key
    org.gpgtools.libmacgpg.xpc.pkg
    org.gpgtools.libmacgpgB.pkg
    org.gpgtools.macgpg2.pkg
    org.gpgtools.pinentry-mac.pkg
    org.macosforge.xquartz.pkg
    wifiexplorer
    Then to check the files of a given pkg:

    Code:
    MacBook-Pro:~ user$ pkgutil --files com.microsoft.rdc.mac
    Microsoft Remote Desktop.app
    Microsoft Remote Desktop.app/Contents
    Microsoft Remote Desktop.app/Contents/Frameworks
    Microsoft Remote Desktop.app/Contents/Frameworks/ADALiOS.framework
    Microsoft Remote Desktop.app/Contents/Frameworks/ADALiOS.framework/ADALiOS
    Microsoft Remote Desktop.app/Contents/Frameworks/ADALiOS.framework/Resources
    Microsoft Remote Desktop.app/Contents/Frameworks/ADALiOS.framework/Versions
    Microsoft Remote Desktop.app/Contents/Frameworks/ADALiOS.framework/Versions/A
    Microsoft Remote Desktop.app/Contents/Frameworks/ADALiOS.framework/Versions/A/ADALiOS
    Microsoft Remote Desktop.app/Contents/Frameworks/ADALiOS.framework/Versions/A/Resources
    Microsoft Remote Desktop.app/Contents/Frameworks/ADALiOS.framework/Versions/A/Resources/Info.plist
    Microsoft Remote Desktop.app/Contents/Frameworks/ADALiOS.framework/Versions/A/Resources/en.lproj
    Microsoft Remote Desktop.app/Contents/Frameworks/ADALiOS.framework/Versions/A/Resources/en.lproj/InfoPlist.strings
    Microsoft Remote Desktop.app/Contents/Frameworks/ADALiOS.framework/Versions/A/_CodeSignature
    Microsoft Remote Desktop.app/Contents/Frameworks/ADALiOS.framework/Versions/A/_CodeSignature/CodeResources
    Microsoft Remote Desktop.app/Contents/Frameworks/ADALiOS.framework/Versions/Current
    Microsoft Remote Desktop.app/Contents/Frameworks/libQtCore.4.8.4.dylib
    Microsoft Remote Desktop.app/Contents/Frameworks/libQtCore.4.8.dylib
    Microsoft Remote Desktop.app/Contents/Frameworks/libQtCore.4.dylib
    Microsoft Remote Desktop.app/Contents/Frameworks/libQtCore.dylib
    Microsoft Remote Desktop.app/Contents/Frameworks/libQtGui.4.8.4.dylib
    Microsoft Remote Desktop.app/Contents/Frameworks/libQtGui.4.8.dylib
    Microsoft Remote Desktop.app/Contents/Frameworks/libQtGui.4.dylib
    Microsoft Remote Desktop.app/Contents/Frameworks/libQtGui.dylib
    Microsoft Remote Desktop.app/Contents/Frameworks/libQtNetwork.4.8.4.dylib
    Microsoft Remote Desktop.app/Contents/Frameworks/libQtNetwork.4.8.dylib
    Microsoft Remote Desktop.app/Contents/Frameworks/libQtNetwork.4.dylib
    Microsoft Remote Desktop.app/Contents/Frameworks/libQtNetwork.dylib
    Microsoft Remote Desktop.app/Contents/Frameworks/libQtXml.4.8.4.dylib
    Microsoft Remote Desktop.app/Contents/Frameworks/libQtXml.4.8.dylib
    Microsoft Remote Desktop.app/Contents/Frameworks/libQtXml.4.dylib
    Microsoft Remote Desktop.app/Contents/Frameworks/libQtXml.dylib
    Microsoft Remote Desktop.app/Contents/Frameworks/libcrypto.1.0.0.dylib
    Microsoft Remote Desktop.app/Contents/Frameworks/libssl.1.0.0.dylib
    Microsoft Remote Desktop.app/Contents/Info.plist
    Microsoft Remote Desktop.app/Contents/MacOS
    Microsoft Remote Desktop.app/Contents/MacOS/Microsoft Remote Desktop
    Microsoft Remote Desktop.app/Contents/PkgInfo
    Microsoft Remote Desktop.app/Contents/PlugIns
    Microsoft Remote Desktop.app/Contents/PlugIns/accessible
    Microsoft Remote Desktop.app/Contents/PlugIns/accessible/libqtaccessiblewidgets.dylib
    Microsoft Remote Desktop.app/Contents/PlugIns/imageformats
    Microsoft Remote Desktop.app/Contents/PlugIns/imageformats/libqgif.dylib
    Microsoft Remote Desktop.app/Contents/PlugIns/imageformats/libqico.dylib
    Microsoft Remote Desktop.app/Contents/PlugIns/imageformats/libqtga.dylib
    Microsoft Remote Desktop.app/Contents/Resources
    Microsoft Remote Desktop.app/Contents/Resources/change-dock.sh
    Microsoft Remote Desktop.app/Contents/Resources/dock-remove.sh
    Microsoft Remote Desktop.app/Contents/Resources/empty.lproj
    Microsoft Remote Desktop.app/Contents/Resources/postinstall.sh
    Microsoft Remote Desktop.app/Contents/Resources/qmote-512x512.icns
    Microsoft Remote Desktop.app/Contents/Resources/qt.conf
    Microsoft Remote Desktop.app/Contents/Resources/qt_menu.nib
    Microsoft Remote Desktop.app/Contents/Resources/qt_menu.nib/classes.nib
    Microsoft Remote Desktop.app/Contents/Resources/qt_menu.nib/info.nib
    Microsoft Remote Desktop.app/Contents/Resources/qt_menu.nib/keyedobjects.nib
    Microsoft Remote Desktop.app/Contents/_CodeSignature
    Microsoft Remote Desktop.app/Contents/_CodeSignature/CodeResources
    And if you can't bothered scripting there is always Uninstallpkg:
    https://www.corecode.at/uninstallpkg/
     
  12. leman macrumors 604

    Joined:
    Oct 14, 2008
    #12
    True, but for instance just installing Office, puts the following on my system

    Code:
    com.microsoft.package.Fonts
    com.microsoft.package.Frameworks
    com.microsoft.package.Microsoft_AutoUpdate.app
    com.microsoft.package.Microsoft_Excel.app
    com.microsoft.package.Microsoft_OneNote.app
    com.microsoft.package.Microsoft_Outlook.app
    com.microsoft.package.Microsoft_PowerPoint.app
    com.microsoft.package.Microsoft_Word.app
    com.microsoft.package.Proofing_Tools
    com.microsoft.pkg.licensing
    com.microsoft.pkg.licensing.volume
    
    Uninstalling this is a mess. I'd really rather wish they would put most of these things into a single app bundle.
     
  13. Ritsuka macrumors 6502a

    Joined:
    Sep 3, 2006
    #13
    If an app needs an installer it means they blew it.
     
  14. AtheistP3ace macrumors 6502a

    AtheistP3ace

    Joined:
    Sep 17, 2014
    Location:
    Philly
    #14
    Wow. After reading all the responses here I am not sure which side I land on now. Many valid points. It is annoying when you want to completely get rid of something tracking down all the hidden stuff.
     
  15. JeffyTheQuik macrumors 68020

    JeffyTheQuik

    Joined:
    Aug 27, 2014
    Location:
    Charleston, SC and Everett, WA
    #15
    The bad thing is that after 7 years, those barnacles built up on the MacOS ship impede the speed of the boat. It took a hard drive failure on my 2008 iMac to just pull the trigger and do a fresh install.

    It's like a new 7 year old computer!
     
  16. Steve121178 macrumors 68040

    Steve121178

    Joined:
    Apr 13, 2010
    Location:
    Bedfordshire, UK
    #16
    iTrash cleans up all the crap an app leaves behind. It's a brilliant little utility.
     
  17. junkw macrumors regular

    Joined:
    Jun 25, 2010
  18. KALLT, Sep 30, 2015
    Last edited: Sep 30, 2015

    KALLT macrumors 601

    Joined:
    Sep 23, 2008
    #18
    I always wondered why this is not feasible. Theoretically it should be possible to log all the files and folders an application creates in the libraries and remove those when the user wants to delete the application. Apple already uses a similar technology in Spotlight and Time Machine, so it wouldn’t put a burden upon the system. Provided the user is informed of this (maybe a panel that lets the user decide whether to remove preferences as well), I can’t see why it would not work. It should be trivial to verify whether folders and files are used by several apps. Caches and logs are not typically a problem, but application support files, preferences and containers can be.

    Not even Linux does this with their glorious package managers, so I assume that there is a technological reason for this.

    The problem with this kind of apps is that they are (1) fallible and (2) unsophisticated. All they do is search for keywords related to the app you want to remove. Sometimes they find everything that way, sometimes they miss things, sometimes they even mark files that should not be deleted.

    Maybe that’s because of your hard drive. ;-) Residual files of deleted apps don’t do anything. They will only slow your system if you’re constantly running out of space. They’re like old documents, they are just there, but not accessed.

    But they likewise don’t record what the installed applications create afterwards. Removing an entire package is equivalent to dragging an .app to trash. The only benefit of these installers is that they can install components in multiple locations at once, including locations that are off limits without root access.
     
  19. cynics macrumors G3

    Joined:
    Jan 8, 2012
    #19
    I agree with you. I like the idea of dragging the app to the trash can and being done with it. However I'm annoyed when I find files related to what I "removed" months later while looking for something else.
     
  20. Badrottie Suspended

    Badrottie

    Joined:
    May 8, 2011
    Location:
    Los Angeles
    #20
    I trust Zapper small app that can uninstall any apps and their association. Real easy and simple.
     
  21. dmrowley macrumors 6502

    dmrowley

    Joined:
    Aug 4, 2010
    Location:
    Dortches, NC
    #21
  22. AtheistP3ace macrumors 6502a

    AtheistP3ace

    Joined:
    Sep 17, 2014
    Location:
    Philly
    #22
    Thanks for suggestions. I'll look into those apps!
     
  23. mariusignorello macrumors 6502a

    Joined:
    Jun 9, 2013
    #23
    Ha. I love how they have to have their separate package for licensing. They can take their license keys and... never mind.
    :D
     
  24. Carlanga macrumors 604

    Carlanga

    Joined:
    Nov 5, 2009
    #24
    Many apps nowadays that work this way have an uninstaller; there are still some that are uhh that I still use CleanMyMac for them.

    Apple doesn't care about this because you are supposed to only use their app store so you can just X an app and be done. AFAIK app store apps are sandboxed so nothing gets away, IDK 100% since I don't use them.
     
  25. leman macrumors 604

    Joined:
    Oct 14, 2008
    #25
    As I mentioned earlier, Apple gives you enough tools to do almost anything you want from an app bundle. You can even install system tools from within the bundle (using privileged helpers). It doesn't need to be on the app store (and yeah, they are sandboxed). Prime examples of this are Xcode and Server apps, which include their own root directories and place entire development/server infrastructure within them. So yeah, they don't care, because they offer enough tools to make this unnecessary. If only the developers would follow up.
     

Share This Page