Package Management to Appear in OS X Soon?

Posted:
in macOS edited January 2014
Mac OS has always been 1 feature short from near perfection, that being the lack of a package manager. Mac users have always had to remove applications from the system by dragging them to the trash, often leaving unused debris on the system. If you're not already familiar with package management this is the equivelent of the add/remove programs option in windows or rpm, deb or tgz tools which are all Linux package management tools.



Expect a package management feature to appear in a near release of Mac OS X. The addition of package management would likely represent a significant improvement to OS X so it may not be availible until Leopard (We can only hope for it sooner in a minor update). Mac OS X's own package manager will likely be far superior to that of Windows and Linux. Windows package management is limited in that the only real options are to add or remove the app. Linux package managers such as rpm can add/remove and sometimes update applications, however most Linux package management tools do not support all installed applications (especially those installed from source).



Mac OS X's package manager tool will be able to:

-All installed apps. (be them OS X native or BSD, etc...) will be listed with 3 buttons next to them. "Repair", "Update" and "Remove".



-"Repair" will be able to check an installation for corruption and "Repair" it, provided the install CD or file is availible, in some cases it may be able to find the install file on the web.

-"Update" will be shaded if an update for that application is not availible. If one is, it's a one click to download and update that app (as long as it's a free update). Update will know what apps have updates availible by searching an online database with an extensive library of 3rd party application updates.

-"Remove" this is relatively straight forward but it is important to note "Remove" will not just drag a folder to the trash, it will ensure any plug ins and prefference files associated with that app. are cleaned off the system as well.





Note: I have previously posted under another name, so please ignore the # of posts.
«1

Comments

  • Reply 1 of 22
    elronelron Posts: 126member
    Is this just speculation or do you have some inside knowledge? I ask because I've seen flamewars started over OS X's install / uninstall scheme. Many people (myself included) like the simplicity. When I don't want an application anymore, I trash it. There's none of the needless complexity associated with Windows's add/remove programs nonsense (like when there's a phantom program on the list because you deleted the program's folder, but not its registry entries). I think Apple realized that people's first inclination is to just delete the files anyway, so you might as well let them do it.



    Of course, this isn't possible for all programs. Lots of commericial software ships with a dedicated installer so it can litter your hard drive with god-knows-what. Those applications generally come with uninstallers, though. I know this doesn't hold for everything, but if a piece of software includes an installer and neglects to include an uninstaller, I don't think the OS is to blame. Rather, I think it's a defect in the software package.



    I should note that I'm a proponent of keeping preference files after an application has been deleted. There have been several instances in which I evaluated a program and for whatever reason decided it wasn't for me. Then, later, due to some new requirement or perhaps a new version of the application, I downloaded it again. I find it very nice that when I do this sort of thing, my old preferences are still there. I don't mind wasting a few megs of disk space on this sort of thing.



    Quote:

    Originally posted by ngmapple

    Mac OS X's package manager tool will be able to:

    -All installed apps. (be them OS X native or BSD, etc...)



    This bit is interesting. Are you suggesting OS X will have fink-like capabilities? That is, with the addition of a package manager, will OS X now be able to install and uninstall various pieces of open source software? This would be a very welcome feature for me. I've tried several of the open source package managers (well, really just fink and darwin ports) and I'm not thrilled with them. If Apple came along and OS X-ified one of them (who am I kidding, they'd just roll their own), I would be a very happy user indeed.
  • Reply 2 of 22
    tchwojkotchwojko Posts: 139member
    What debris is left? I suppose caches and preferences, but if an application is leaving other stuff around, then it's not really playing nice.



    I'd really hate to have to explain to a non-computer-savvy person how to deal with a "package manager" as opposed to just saying "drag the program to the trash."



    What do you gain with a package manager? Cleaning up the 2K preference file? Is that really a concern?
  • Reply 3 of 22
    ngmapplengmapple Posts: 117member
    You both make valid points and the truth is the nature of each app. really varies from application to application. Some apps. are nicely self contained and little harm is done by dragging the app. to the trash. On the other hand, there's those apps who's installers spew plug-in's, libraries and dependencies through the system, of which many remain after trashing the apps folder. And yes many also include uninstallers. So I think the real issue being resolved by a package management tool would be consistancy and assurance that no matter what app. you're removing you have a consistent and clean way to remove it (as well as a nice list in one place of all apps. on the machine). In many cases the "Remove" button would simply invoke the uninstaller that came with that app. (if one is availible), otherwise the package manager will remember the installation process and simply reverse that when "remove" is clicked (package manager essentially makes an uninstall for apps that don't have one but should).



    For those of us who preffer dragging an application to the trash, or less savy users who may not notice when the feature is added: Apple could include a prompt (that pops up when dragging an app. to the trash) that says "Would you like to cleanly remove/uninstall this application?" Y/N and for elron there could also be a check box "Keep prefference file".



    The more specific details are speculation however the general idea of OS X including some kind of package management is based on some loose evidence. I think I was first on the board to accurately predict on the following (although I predicted both to come out way before they did):

    -Backlit keypads on powerbooks (I think I first described these in '97 several years before they came out)

    -New rack mount servers (XServe) (my photoshoped image was close)
  • Reply 4 of 22
    tchwojkotchwojko Posts: 139member
    Quote:

    "Would you like to cleanly remove/uninstall this application?" Y/N and for elron there could also be a check box "Keep prefference file".



    Who in their right mind will say "NO, I want to messily uninstall this application?"



    I'd be grateful if you could provide specific examples of applications that litter the Library folder so I know what I should be avoiding like the plague...



    Quote:

    package manager essentially makes an uninstall for apps that don't have one but should



    It would also be a very bad idea to have someone other than the application developer to try to infer what to do in the case of an application that should have an installer, but didn't provide one. For example:



    Hack-o-Rama Inc. makes two apps called GreenHack and OrangeHack.

    Installing GreenHack installs the BlueCrap and YellowCrap

    The OrangeHack installer notices that YellowCrap is already there, so it just installs RedCrap.

    The "package manager" removes BlueCrap and YellowCrap because it's just undoing the install.

    OrangeHack is now very unhappy and the very clever script added to the login process now fails because RedCrap is nowhere to be found, causing the machine to hang when you try to log in...



    Start adding version-itis issues, and it becomes a serious nightmare, that the package manager, and hence OS X becomes responsible for causing.
  • Reply 5 of 22
    kickahakickaha Posts: 8,760member
    Re: versions, the frameworks system takes care of 95% of that right off the bat. No DLL Hell ala Windows. Never had it, never will.



    The package manager, and uninstaller, would only handle the apps that it installed, would be my guess. In that case, creating a dependency tree is pretty simple. Startup used this 10.0-10.3, after all. Will developers be responsible for making sure they do it right? Sure. But they have to do it *now*, with less support. Also, the recent upgrades to PackageMaker indicate that they'll be getting more support with such things, making the packages quite a bit more intelligent.
  • Reply 6 of 22
    tchwojkotchwojko Posts: 139member
    Kickaha, are you speaking from the point of view of a developer? I'm speaking from the user's point of view. My argument is that a user should not have to deal with any sort of manager.



    Quote:

    Mac users have always had to remove applications from the system by dragging them to the trash



    Shouldn't it stay that way?
  • Reply 7 of 22
    ngmapplengmapple Posts: 117member
    In response to tchwojko's comments

    Quote:

    Hack-o-Rama Inc. makes two apps called GreenHack and OrangeHack.

    Installing GreenHack installs the BlueCrap and YellowCrap

    The OrangeHack installer notices that YellowCrap is already there, so it just installs RedCrap.

    The "package manager" removes BlueCrap and YellowCrap because it's just undoing the install.

    OrangeHack is now very unhappy and the very clever script added to the login process now fails because RedCrap is nowhere to be found, causing the machine to hang when you try to log in...



    The package manager would see that only "RedCrap" was installed for OrangeHack, as it only records the actual changes made to the system by the install of that particular app., not the dependency. If the OS X package manager worked the way Windows add/remove works then yes you would absolutely have the problem you mention, but not if it worked the way as I describe above.
  • Reply 8 of 22
    tchwojkotchwojko Posts: 139member
    Quote:

    but not if it worked the way as I describe above.



    I don't see where your post adresses the problem, but it's really irrelevant. I believe you that the problem is addressible, I just don't think the user should have any visibility into the issue.



    A question from a user interface standpoint: Should removing an application be the same as removing a document (and a folder for that matter)? Currently, it is supposed to be the same. They all go to the trash. Anything else is not currently normal, expected behavior.
  • Reply 9 of 22
    kickahakickaha Posts: 8,760member
    Incorrect. Some apps, utilities, etc, *do* need to install things into /Library. Print drivers, virus checkers, etc, for instance. They simply cannot be an 'all-in-one' application bundle, unfortunately. They are in the minority, but they do exist, and for good reasons.



    I never meant to indicate that the user should in any way shape or form be aware of what's going on under the hood when it comes to uninstalling items. In a perfect world, simply dragging the app to the Trash would trigger a check against the installing package receipts for the other pieces that went with it, and offer to toss those as well (assuming it didn't break another dependency) if they exist. If they don't, and it is indeed an all inclusive app bundle, then it'll just dump it as normal. I doubt it'll be quite that slick though.
  • Reply 10 of 22
    amoryaamorya Posts: 1,103member
    Quote:

    Originally posted by ngmapple

    In response to tchwojko's comments





    The package manager would see that only "RedCrap" was installed for OrangeHack, as it only records the actual changes made to the system by the install of that particular app., not the dependency. If the OS X package manager worked the way Windows add/remove works then yes you would absolutely have the problem you mention, but not if it worked the way as I describe above.




    He made a typo. He was complaining that the package manager would uninstall YellowCrap, which OrangeHack was relying on. This is a problem.



    Amorya
  • Reply 11 of 22
    ngmapplengmapple Posts: 117member
    Kickaha writes:

    Quote:

    The package manager, and uninstaller, would only handle the apps that it installed, would be my guess. In that case, creating a dependency tree is pretty simple.



    I would suggest all app installations would be handled by the package manager, but the user does not have to see this at all.



    Here's a newbie user example:

    Say Newbie Jane pops in a CD for Generix App X and it has an installer on it (but this app. wasn't written so well so it doesn't come whan an uninstaller). (Not even knowing how the package manager works or that her OS even has a package manager.) She double clicks the installer as we've done for years on the Mac OS. Install procededs as normal to the user, however in the background this invokes the package manager to watch this install, keeping track of what is actually added to the system and where. And in addition package manager adds the Generic X icon and name to the package manager list (Jane would not see this unless she opened up package manager). Jane finds Generic X is slowing down her system and is not as usefull as she thought it might be (caused by a library or driver that the package installed, but Jane has no idea why, she just knows her problems started after she Installed Generic X), so she decides to get rid of it. Shen then drags the app folder to the trash as she's always done and get a pop-up window "Would you like to completely uninstall this app." (or something a bit better than that) she hits yes and the app along with the the troublesome lib/driver is removed, her system is back to the way it was before verbatim. Now lets say Jane didn't have the package manager and she drags the folder to the trash, we'll she's still got that evil lib/driver on the system.



    Now let's say we have Joe a power user:

    He's got a an app called Generic X3 that he uses for day to day video editing. He's opens up package manager to remove another app. and see's the Update button next to Generic X3 is colored in (signifing an update is availble for Generic X3). He clicks it, package manager downloads an update patch for Generic X3 and walks Joe through a quick wizard. The update button then fades to signify Joe has the latest release of Generic X3. Joe then tests out Generic X3 and notices a 5% performance improvement and some cool new video effects.



    tchwojko writes:

    Quote:

    A question from a user interface standpoint: Should removing an application be the same as removing a document (and a folder for that matter)? Currently, it is supposed to be the same. They all go to the trash. Anything else is not currently normal, expected behavior.



    I agree with you to a great deal there as I believe consistancy is on of the most important features of a good OS (similar tasks performed by similar processes). There is an issue, however when you want to compare folders and documents to applications. A document typically consists of a single file and a folder is a self contained tree of folders and files. In the case of an application, you're not neccissary considering a neatly packed tree. So it is difficult to "cleanly" remove an app by dragging it to the trash when it is not self contained. Again Apple could thrown in a feature where the OS prompts for a clean uninstall when you drag the application folder to the trash. I can confidently say from experience that this will help prevent the occasional system conflict.



    Same problem occurs when trying to operate on a patient affected with Cancer. If their cancer is confined to a single tumor removal may be trivial, but if cancer cells are scattered all over the place, treatment is far more problematic (as in the case with apps that install various drivers and libraries).
  • Reply 12 of 22
    gene cleangene clean Posts: 3,481member
    Quote:

    Originally posted by ngmapple

    Mac OS X's own package manager will likely be far superior to that of Windows and Linux.



    It might be superior to that of Windows, but I don't see how it's going to be superior to something like APT
  • Reply 13 of 22
    kickahakickaha Posts: 8,760member
    Well it's not like apt is exactly rocket science...



    Seriously, this is pretty simple stuff, all told.
  • Reply 14 of 22
    placeboplacebo Posts: 5,767member
    Okay, I've got the good idea.



    I think each application should contain a text file of the paths of all extraneous files. Then, when you place an application in the trash and delete, OS X will ask you, "Delete all files related to this application?" with a little checkbox labeled "save preferences".



    Elegant and powerful.
  • Reply 15 of 22
    mynameheremynamehere Posts: 560member
    Wasn't there some kind of security risk with having a prog registry...easy for viruses to spread or something...I'm pretty sure I read that somewhere (probably here)...



    Anyone?



    EDIT: In this case, why not have all apps that spew the extra files come with an uninstaller which can be located in the app folder...better than having a central db to hold all the files...I think...
  • Reply 16 of 22
    placeboplacebo Posts: 5,767member
    I personally think that most apps are fine to uninstall by drag-to-trash currently, with the exception of Garageband, which leaves 1.5GB (!) of audio loops hidden in your Library.
  • Reply 17 of 22
    You should change the title to reflect the speculation in this thread.
  • Reply 18 of 22
    kickahakickaha Posts: 8,760member
    Actually, ngmapple is claiming that it will indeed appear. This qualifies as a rumor report in my book. It may be right, it may be wrong, but it's an assertion.



    We'll see if it's right or not.
  • Reply 19 of 22
    lundylundy Posts: 4,466member
    I tried to write a "orphaned prefs killer" script once and it turns out that:



    - some apps put prefs in a place other than ~/Library/Application Support or ~/Library/Preferences. Safari puts a whole folder of prefs right in the ~/Library called "Safari".



    - many of the prefs files do not include the name of the app in the reverse-DNS format filename (e.g. XYZ Software's KillerApp.app may have a preference file called "com.XYZ.xyzkapp.plist".



    - creator codes are now optional, so that isn't something one can rely on.



    So I don't see a reliable way to tell what app a support file is linked to.
  • Reply 20 of 22
    apeirosapeiros Posts: 16member
    Take it a step further.

    I want a new application, say an FTP-Program. I go to the application-manager and click "New Application" (or so), a store opens (like iTMS, take WebCore for the interface and the store magically works in a normal browser too), I navigate through "Internet" over "File Exchange" to "FTP" and find a nice list of (user rated?) Application. I can test them or order them just by a single click like you can order a song now.

    Apple already has the experience, the shop-infrastructure etc. The only problem could be legal issues (monopoly?).

    They could offer free- and shareware as well (and take a huge problem away from the developers, since Apple would handle all the payment-related issues).



    About the rest:

    IMHO a good idea. I can't understand the complaints here about "deleting an application should be a single 'move-to-trash'". Of course an application-manager and drop-to-trash-deletion are not mutually exclusive - there are many ways to rome ;-). The OS knows when you are trashing an app, it can handle it then in an appropriate way. Dependency problems can be avoided, I think there is enough expertise around now a days.



    regards,

    apeiros
Sign In or Register to comment.