Basic requirements of a software installer are:
Other "nice-to-have" functions are:
Applying the necessary additional components is also a must. A few examples of this are: