A powerful option for selecting which software packages to install is to install several relevant packages, and test them out directly. Participants in a usability study on package manager were reluctant to use this method of selecting between the many available software packages. The main reason expressed for not wanting to install software for trial purposes was a concern that the removal process would be imperfect, leaving residual effects on the computer after it was removed.
This concern was based on experience with standalone installers in Microsoft Windows which often do not fully remove all vestiges of an application when the program is un-installed. On Windows, this has led to the development of a niche for dedicated software that is not a part of any package manager, such as Pitrinec’s CCleaner, that will scan the computer to try to find and remove unneeded files and settings that were left behind by imperfect software removal.
When a package manager un-installs a package, software that was installed to satisfy dependencies of the now-removed software may no longer be necessary. In one case, a user who participated did not want to install software packages to test them out, due to concerns that the removal process would be imperfect and installing the software to try it out would leave some residual effects on the computer after it was removed.
Some package managers, such as aptitude, will automatically remove packages that were installed to satisfy dependencies and are no longer needed. The package managers examined in this study do not provide the same capability, and would leave any dependencies installed when a package was removed. (The exception being Apple’s App Store, which provides no dependency resolution at all.) Thorough removal of software packages that users do not want any more may make users more comfortable trying out packages to help them choose between their options.
Ubuntu 11.04 has taken a different approach: the version of Ubuntu Software Center that it comes with can accept an add-on which adds the ability to access a virtual machine with the application installed on it – allowing the user to interact with the application without installing it. This provides an interesting middle ground between installing the application to test it, and selecting an application to install based only on screen-shots and a description.