How would you like install, upgrade and removal to be handled?

Registered by KIAaze

I'm not sure what the best way to handle install, upgrade, removal processes is.
Here are the current solutions I've come up with:

Solution 1:
======
-Install: Configure everything to have a default filtering active.
-Upgrade: Don't change the configuration.
-Removal: Restore pre-installation configuration files.

Solution 2:
=======
-Install/Upgrade/Removal: Do nothing
-First use of the GUI: Launch wizard to back up and configure everything. Tell user how he can restore settings before removal.

Solution 3:
=======
-Install: Launch backup&config wizard
-Upgrade: Do nothing
-Removal: Ask user if he wants to restore pre-installation settings

Solution 4:
=======
One of the above, but so that:
apt-get remove : doesn't do anything
apt-get remove --purge: Restores pre-installation settings.

What would be your preferred solution?

Personally, I'm against solution 3, because I hate packages that require user interaction during install/removal. It prevents you from installing/uninstalling a lot of packages in one go.
+ I don't know how to make it so it uses a console GUI when using a console and another when not.

I would suggest:

Solution 5:
=======
-Install: Launch backup and show the user the backup location & install basic filtering settings
-Upgrade: Do nothing
-Removal: Leave the configuration
-Purge: ask the user if he wants to have his files restored

Blueprint information

Status:
Not started
Approver:
None
Priority:
Undefined
Drafter:
None
Direction:
Needs approval
Assignee:
None
Definition:
Discussion
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.